<html lang="en"><head></head><body><form id="mainForm" method="post" action="http://plnkr.co/edit/?p=preview" target="_self"><input type="hidden" name="files[api/in-memory-store.service.ts]" value="export class InMemoryStoreService {
  /**
  * Creates fresh copy of data each time.
  * Safe for consuming service to morph arrays and objects.
  */
  createDb() {
    let characters = [
      {
        &quot;id&quot;: 11,
        &quot;name&quot;: &quot;Chewbacca&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 12,
        &quot;name&quot;: &quot;Rey&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 13,
        &quot;name&quot;: &quot;Finn (FN2187)&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 14,
        &quot;name&quot;: &quot;Han Solo&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 15,
        &quot;name&quot;: &quot;Leia Organa&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 16,
        &quot;name&quot;: &quot;Luke Skywalker&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 17,
        &quot;name&quot;: &quot;Poe Dameron&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 18,
        &quot;name&quot;: &quot;Kylo Ren&quot;,
        &quot;side&quot;: &quot;dark&quot;
      },
      {
        &quot;id&quot;: 19,
        &quot;name&quot;: &quot;Supreme Commander Snoke&quot;,
        &quot;side&quot;: &quot;dark&quot;
      },
      {
        &quot;id&quot;: 20,
        &quot;name&quot;: &quot;R2-D2&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 21,
        &quot;name&quot;: &quot;BB8&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 22,
        &quot;name&quot;: &quot;C-3PO&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 23,
        &quot;name&quot;: &quot;Maz Kanata&quot;,
        &quot;side&quot;: &quot;light&quot;
      },
      {
        &quot;id&quot;: 24,
        &quot;name&quot;: &quot;Captain Phasma&quot;,
        &quot;side&quot;: &quot;dark&quot;
      },
      {
        &quot;id&quot;: 25,
        &quot;name&quot;: &quot;General Hux&quot;,
        &quot;side&quot;: &quot;dark&quot;
      },
      {
        &quot;id&quot;: 26,
        &quot;name&quot;: &quot;Lor San Tekka&quot;,
        &quot;side&quot;: &quot;light&quot;
      }
    ];

    let vehicles = [
      {
        &quot;id&quot;: 30,
        &quot;name&quot;: &quot;Millennium Falcon&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 32,
        &quot;name&quot;: &quot;X-Wing Fighter&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 33,
        &quot;name&quot;: &quot;Imperial Star Destroyer&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 34,
        &quot;name&quot;: &quot;AT-AT Walker&quot;,
        &quot;type&quot;: &quot;land&quot;
      },
      {
        &quot;id&quot;: 35,
        &quot;name&quot;: &quot;TIE Fighter&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 36,
        &quot;name&quot;: &quot;B-Wing Fighter&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 37,
        &quot;name&quot;: &quot;ETA-2 Jedi Starfighter&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 38,
        &quot;name&quot;: &quot;TIE Interceptor&quot;,
        &quot;type&quot;: &quot;space&quot;
      },
      {
        &quot;id&quot;: 39,
        &quot;name&quot;: &quot;X-34 Landspeeder&quot;,
        &quot;type&quot;: &quot;land&quot;
      },
      {
        &quot;id&quot;: 40,
        &quot;name&quot;: &quot;Snow Speeder&quot;,
        &quot;type&quot;: &quot;land&quot;
      },
      {
        &quot;id&quot;: 41,
        &quot;name&quot;: &quot;X-34 Landspeeder&quot;,
        &quot;type&quot;: &quot;land&quot;
      }
    ]

    return { characters, vehicles };
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/admin/admin-routing.module.ts]" value="import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { AdminComponent } from './admin.component';

const routes: Routes = [
  { path: '', component: AdminComponent },
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
})
export class AdminRoutingModule { }

export const routedComponents = [AdminComponent];


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/admin/admin.component.ts]" value="import { Component, OnInit } from '@angular/core';

@Component({
  moduleId: module.id,
  selector: 'story-admin',
  templateUrl: 'admin.component.html'
})
export class AdminComponent implements OnInit {
  constructor() { }

  ngOnInit() { }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/admin/admin.module.ts]" value="import { NgModule } from '@angular/core';

import { AdminRoutingModule, routedComponents }   from './admin-routing.module';

@NgModule({
  imports: [AdminRoutingModule],
  declarations: [routedComponents],
})
export class AdminModule { }



/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/app-routing.module.ts]" value="import { NgModule } from '@angular/core';
import { PreloadAllModules, Routes, RouterModule } from '@angular/router';

import { AuthGuard, CanDeactivateGuard, UserProfileService } from './core';
import { PageNotFoundComponent } from './page-not-found.component';

/***************************************************************
* Lazy Loading to Eager Loading
*
* 1. Remove the module and NgModule imports in `app.module.ts`
*
* 2. Remove the lazy load route from `app.routing.ts`
*
* 3. Change the module's default route path from '' to 'pathname'
*****************************************************************/
const routes: Routes = [
  { path: '', pathMatch: 'full', redirectTo: 'dashboard', },
  {
    path: 'admin',
    loadChildren: 'app/admin/admin.module#AdminModule',
    canActivate: [AuthGuard],
    canActivateChild: [AuthGuard],
    canLoad: [AuthGuard],
  },
  { path: 'dashboard', loadChildren: 'app/dashboard/dashboard.module#DashboardModule' },
  { path: 'characters', loadChildren: 'app/characters/characters.module#CharactersModule' },
  { path: 'vehicles', loadChildren: 'app/vehicles/vehicles.module#VehiclesModule' },
  { path: '**', pathMatch: 'full', component: PageNotFoundComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],
  exports: [RouterModule],
  providers: [
    AuthGuard,
    CanDeactivateGuard,
    UserProfileService
  ]
})
export class AppRoutingModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/app.component.ts]" value="import { Component } from '@angular/core';

@Component({
  moduleId: module.id,
  selector: 'story-app',
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css']
})
export class AppComponent { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/app.module.ts]" value="import { NgModule } from '@angular/core';
import { BrowserModule  } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';

import './core/rxjs-extensions';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { InMemoryWebApiModule } from 'angular-in-memory-web-api';
import { InMemoryStoreService } from '../api/in-memory-store.service';
import { CharacterService } from './models';
import { PageNotFoundComponent } from './page-not-found.component';

/* Feature Modules */
import { CoreModule } from './core/core.module';
import { LoginModule } from './login/login.module';

@NgModule({
  imports: [
    BrowserModule,
    HttpModule,

    LoginModule,
    // Routes get loaded in order. It is important that login
    // come before AppRoutingModule, as
    // AppRoutingModule defines the catch-all ** route
    AppRoutingModule,
    CoreModule,
    InMemoryWebApiModule.forRoot(InMemoryStoreService, { delay: 600 }),
  ],
  declarations: [AppComponent, PageNotFoundComponent],
  providers: [CharacterService],
  bootstrap: [AppComponent],
})
export class AppModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/character-list/character-list.component.ts]" value="import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { Subscription } from 'rxjs/subscription';

import { Character, CharacterService } from '../../models';
import { FilterTextComponent } from '../../shared/filter-text/filter-text.component';
import { FilterTextService } from '../../shared/filter-text/filter-text.service';

@Component({
  moduleId: module.id,
  selector: 'story-character-list',
  templateUrl: 'character-list.component.html',
  styleUrls: ['character-list.component.css'],
})
export class CharacterListComponent implements OnDestroy, OnInit {
  private dbResetSubscription: Subscription;

  characters: Character[] = [];
  filteredCharacters = this.characters;
  @ViewChild(FilterTextComponent) filterComponent: FilterTextComponent;

  constructor(private characterService: CharacterService,
    private filterService: FilterTextService) { }

  filterChanged(searchText: string) {
    this.filteredCharacters = this.filterService.filter(searchText, ['id', 'name', 'side'], this.characters);
  }

  getCharacters() {
    this.characters = [];

    this.characterService.getCharacters()
      .subscribe(characters => {
        this.characters = this.filteredCharacters = characters;
        // this.filterComponent.clear();
      });
  }

  ngOnDestroy() {
    this.dbResetSubscription.unsubscribe();
  }

  ngOnInit() {
    componentHandler.upgradeDom();
    this.getCharacters();
    this.dbResetSubscription = this.characterService.onDbReset
      .subscribe(() => this.getCharacters());
  }

  trackByCharacters(index: number, character: Character) {
    return character.id;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/character/character.component.ts]" value="import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from 'rxjs/Subscription';

import { Character, CharacterService } from '../../models';
import { CanComponentDeactivate, EntityService, ModalService, ToastService } from '../../core';

@Component({
  moduleId: module.id,
  selector: 'story-character',
  templateUrl: 'character.component.html',
  styleUrls: ['character.component.css']
})
export class CharacterComponent implements OnDestroy, OnInit, CanComponentDeactivate {
  @Input() character: Character;
  editCharacter: Character = <Character>{};

  private dbResetSubscription: Subscription;
  private id: any;

  constructor(
    private entityService: EntityService,
    private modalService: ModalService,
    private route: ActivatedRoute,
    private router: Router,
    private characterService: CharacterService,
    private toastService: ToastService) { }

  cancel(showToast = true) {
    this.editCharacter = this.entityService.clone(this.character);
    if (showToast) {
      this.toastService.activate(`Cancelled changes to ${this.character.name}`);
    }
  }

  canDeactivate() {
    return !this.character ||
      !this.isDirty() ||
      this.modalService.activate();
  }

  delete() {
    let msg = `Do you want to delete ${this.character.name}?`;
    this.modalService.activate(msg).then(responseOK => {
      if (responseOK) {
        this.cancel(false);
        this.characterService.deleteCharacter(this.character)
          .subscribe(() => {
            this.toastService.activate(`Deleted ${this.character.name}`);
            this.gotoCharacters();
          },
          (err) => this.handleServiceError('Delete', err), // Failure path
          () => console.log('Delete Completed') // Completed actions
          );
      }
    });
  }

  isAddMode() {
    return isNaN(this.id);
  }

  ngOnDestroy() {
    this.dbResetSubscription.unsubscribe();
  }

  ngOnInit() {
    componentHandler.upgradeDom();
    this.dbResetSubscription = this.characterService.onDbReset
      .subscribe(() => this.getCharacter());

    // Could use a snapshot here, as long as the parameters do not change.
    // This may happen when a component is re-used.
    // this.id = +this.route.snapshot.params['id'];
    this.route
      .params
      .map(params => params['id'])
      .do(id => this.id = +id)
      .subscribe(id => this.getCharacter());
  }

  save() {
    let character = this.character = this.entityService.merge(this.character, this.editCharacter);
    if (character.id == null) {
      this.characterService.addCharacter(character)
        .subscribe(s => {
          this.setEditCharacter(s);
          this.toastService.activate(`Successfully added ${s.name}`);
          this.gotoCharacters();
        });
      return;
    }
    this.characterService.updateCharacter(character)
      .subscribe(() => this.toastService.activate(`Successfully saved ${character.name}`));
  }

  private getCharacter() {
    if (this.id === 0) { return; };
    if (this.isAddMode()) {
      this.character = <Character>{ name: '', side: '' };
      this.editCharacter = this.entityService.clone(this.character);
      return;
    }
    this.characterService.getCharacter(this.id)
      .subscribe(character => this.setEditCharacter(character));
  }

  private gotoCharacters() {
    this.router.navigate(['/characters']);
  }

  private handleServiceError(op: string, err: any) {
    console.error(`${op} error: ${err.message || err}`);
  }

  private isDirty() {
    return this.entityService.propertiesDiffer(this.character, this.editCharacter);
  }

  private setEditCharacter(character: Character) {
    if (character) {
      this.character = character;
      this.editCharacter = this.entityService.clone(this.character);
    } else {
      this.gotoCharacters();
    }
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/characters-routing.module.ts]" value="import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { CharacterListComponent } from './character-list/character-list.component';
import { CharacterComponent } from './character/character.component';
import { CharactersComponent } from './characters.component';
import { CanDeactivateGuard } from '../core';

const routes: Routes = [
  {
    path: '',
    component: CharactersComponent,
    children: [
      {
        path: '',
        component: CharacterListComponent,
      },
      {
        path: ':id',
        component: CharacterComponent,
        canDeactivate: [CanDeactivateGuard]
      },
    ]
  },
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
})
export class CharactersRoutingModule { }

export const routedComponents = [CharactersComponent, CharacterListComponent, CharacterComponent];


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/characters.component.ts]" value="import { Component } from '@angular/core';

@Component({
  template: `<router-outlet></router-outlet>`,
})
export class CharactersComponent { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/characters.module.ts]" value="import { NgModule } from '@angular/core';

import { CharacterButtonComponent } from './shared/character-button/character-button.component';
import { SortCharactersPipe } from './shared/sort-characters.pipe';
import { CharactersRoutingModule, routedComponents } from './characters-routing.module';
import { SharedModule } from '../shared/shared.module';

@NgModule({
  imports: [CharactersRoutingModule, SharedModule],
  declarations: [CharacterButtonComponent, SortCharactersPipe, routedComponents]
})
export class CharactersModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/shared/character-button/character-button.component.ts]" value="import { Component, Input, OnInit } from '@angular/core';

import { Character } from '../../../models';

@Component({
  moduleId: module.id,
  selector: 'story-character-button',
  templateUrl: 'character-button.component.html',
  styleUrls: ['character-button.component.css'],
})
export class CharacterButtonComponent implements OnInit {
  @Input() character: Character;

  constructor() {}

  ngOnInit() {
  }

}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/shared/sort-characters.pipe.ts]" value="import { Pipe, PipeTransform } from '@angular/core';

import { Character } from '../../models';

@Pipe({ name: 'sortCharacters' })
export class SortCharactersPipe implements PipeTransform {
  transform(value: Character[], args?: any[]) {
    if (!value || !value.sort) { return value; }

    return value.sort((a: Character, b: Character) => {
      if (a.name < b.name) { return -1; }
      if (a.name > b.name) { return 1; }
      return 0;
    });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/auth-guard.service.ts]" value="import { Injectable } from '@angular/core';
import {
  CanActivate,
  CanActivateChild,
  CanLoad,
  Route,
  Router,
  ActivatedRouteSnapshot,
  RouterStateSnapshot
} from '@angular/router';

import { UserProfileService } from './user-profile.service';

@Injectable()
export class AuthGuard implements CanActivate, CanActivateChild, CanLoad {
  constructor(private userProfileService: UserProfileService, private router: Router) { }

  canLoad(route: Route) {
    if (this.userProfileService.isLoggedIn) {
      return true;
    }
    let url = `/${route.path}`;
    this.router.navigate(['/login'], { queryParams: { redirectTo: url } });
    return this.userProfileService.isLoggedIn;
  }

  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ) {
    if (this.userProfileService.isLoggedIn) {
      return true;
    }
    this.router.navigate(['/login'], { queryParams: { redirectTo: state.url } });

    return false;
  }

  canActivateChild(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ) {
    return this.canActivate(route, state);
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/can-deactivate-guard.service.ts]" value="import { CanDeactivate } from '@angular/router';
import { Observable } from 'rxjs/Observable';

export interface CanComponentDeactivate {
  canDeactivate: () => any; // boolean|Promise<boolean>|Observable<boolean>;
}

export class CanDeactivateGuard implements CanDeactivate<CanComponentDeactivate> {
  canDeactivate(component: CanComponentDeactivate): Observable<boolean> | boolean {
    // run the function for canDeactivate and if its a promise or a boolean we handle it either way

    // return true;

    // if (component.canDeactivate) {
    //   let deactivate = component.canDeactivate();
    //   return this.toObservable(deactivate);
    // } else {
    //   return true;
    // }

    return component.canDeactivate ?
      this.toObservable(component.canDeactivate()) : true;
  }

  private toObservable(deactivate: Promise<boolean> | boolean ): Observable<boolean> | boolean {
    let p = Promise.resolve(deactivate);
    let o = Observable.fromPromise(p);
    return o;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/config.ts]" value="export let CONFIG = {
  baseUrls: {
    config: 'commands/config',
    resetDb: 'commands/resetDb',
    characters: 'api/characters.json',
    vehicles: 'api/vehicles.json'
  }
};


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/core.module.ts]" value="import { NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';

import { EntityService } from './entity.service';
import { ExceptionService } from './exception.service';
import { MessageService } from './message.service';
import { NavComponent } from './nav/nav.component';

import { throwIfAlreadyLoaded } from './module-import-guard';
import { ModalModule } from './modal/modal.module';
import { SpinnerModule } from './spinner/spinner.module';
import { ToastModule } from './toast/toast.module';

// imports: imports the module's exports. which is usually declarables and providers
// in our case the spinner has no providers.
//
// exports: exports modules AND components/directives/pipes that other modules may want to use
@NgModule({
  imports: [
    CommonModule, FormsModule, RouterModule,
    ModalModule, SpinnerModule, ToastModule
  ],
  exports: [
    CommonModule, FormsModule, RouterModule,
    ModalModule, SpinnerModule, ToastModule, [NavComponent]
  ],
  declarations: [NavComponent],
  providers: [
    EntityService,
    ExceptionService,
    MessageService,
  ]
})
export class CoreModule {
  constructor( @Optional() @SkipSelf() parentModule: CoreModule) {
    throwIfAlreadyLoaded(parentModule, 'CoreModule');
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/entity.service.ts]" value="import { Injectable } from '@angular/core';

@Injectable()
export class EntityService {
  clone<T>(source: T): T {
    return Object.assign({}, source);
  }

  merge = (target: any, ...sources: any[]) => Object.assign(target, ...sources);

  propertiesDiffer = (entityA: {}, entityB: {}) => Object.keys(entityA).find(key => entityA[key] !== entityB[key]);
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/exception.service.ts]" value="import { Injectable } from '@angular/core';
import { Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';

import { ToastService } from './toast/toast.service';

@Injectable()
export class ExceptionService {
  constructor(private toastService: ToastService) { }

  catchBadResponse: (errorResponse: any) => Observable<any> = (errorResponse: any) => {
    let res = <Response>errorResponse;
    let err = res.json();
    let emsg = err ?
      (err.error ? err.error : JSON.stringify(err)) :
      (res.statusText || 'unknown error');
    this.toastService.activate(`Error - Bad Response - ${emsg}`);
    return Observable.of(false);
  };
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/index.ts]" value="export * from './config';
export * from './auth-guard.service';
export * from './can-deactivate-guard.service';
export * from './entity.service';
export * from './exception.service';
export * from './message.service';
export * from './modal/modal.service';
export * from './rxjs-extensions';
export * from './spinner/spinner.service';
export * from './toast/toast.service';
export * from './user-profile.service';


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/message.service.ts]" value="import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Subject } from 'rxjs/Subject';

import { CONFIG } from './config';
import { ToastService } from './toast/toast.service';

export interface ResetMessage {
  message: string;
}

@Injectable()
export class MessageService {
  private subject = new Subject<ResetMessage>();

  state = this.subject;

  constructor(private http: Http, private toastService: ToastService) { }

  resetDb() {
    let msg = 'Reset the Data Successfully';
    this.http.post(CONFIG.baseUrls.resetDb, null)
      .subscribe(() => {
        this.subject.next({ message: msg });
        this.toastService.activate(msg);
      });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/modal/modal.component.ts]" value="import { Component, OnInit } from '@angular/core';

import { ModalService } from './modal.service';

const KEY_ESC = 27;

@Component({
  moduleId: module.id,
  selector: 'story-modal',
  templateUrl: 'modal.component.html',
  styleUrls: ['modal.component.css']
})
export class ModalComponent implements OnInit {
  title: string;
  message: string;
  okText: string;
  cancelText: string;
  negativeOnClick: (e: any) => void;
  positiveOnClick: (e: any) => void;

  private defaults = {
    title: 'Confirmation',
    message: 'Do you want to cancel your changes?',
    cancelText: 'Cancel',
    okText: 'OK'
  };
  private modalElement: any;
  private cancelButton: any;
  private okButton: any;

  constructor(modalService: ModalService) {
    modalService.activate = this.activate.bind(this);
  }

  activate(message = this.defaults.message, title = this.defaults.title) {
    this.title = title;
    this.message = message;
    this.okText = this.defaults.okText;
    this.cancelText = this.defaults.cancelText;

    let promise = new Promise<boolean>((resolve, reject) => {
      this.negativeOnClick = (e: any) => resolve(false);
      this.positiveOnClick = (e: any) => resolve(true);
      this.show();
    });

    return promise;
  }

  ngOnInit() {
    this.modalElement = document.getElementById('confirmationModal');
    this.cancelButton = document.getElementById('cancelButton');
    this.okButton = document.getElementById('okButton');
  }

  private show() {
    document.onkeyup = null;

    if (!this.modalElement || !this.cancelButton || !this.okButton) {
      return;
    }

    this.modalElement.style.opacity = 0;
    this.modalElement.style.zIndex = 9999;

    this.cancelButton.onclick = ((e: any) => {
      e.preventDefault();
      if (!this.negativeOnClick(e)) {
        this.hideDialog();
      }
    });

    this.okButton.onclick = ((e: any) => {
      e.preventDefault();
      if (!this.positiveOnClick(e)) {
        this.hideDialog();
      }
    });

    this.modalElement.onclick = () => {
      this.hideDialog();
      return this.negativeOnClick(null);
    };

    document.onkeyup = (e: any) => {
      if (e.which === KEY_ESC) {
        this.hideDialog();
        return this.negativeOnClick(null);
      }
    };

    this.modalElement.style.opacity = 1;
  }

  private hideDialog() {
    document.onkeyup = null;
    this.modalElement.style.opacity = 0;
    window.setTimeout(() => this.modalElement.style.zIndex = 0, 400);
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/modal/modal.module.ts]" value="import { NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';

import { throwIfAlreadyLoaded } from '../module-import-guard';
import { ModalComponent }   from './modal.component';
import { ModalService } from './modal.service';

@NgModule({
  imports: [CommonModule],
  exports: [ModalComponent],
  declarations: [ModalComponent],
  providers: [ModalService],
})
export class ModalModule {
  constructor( @Optional() @SkipSelf() parentModule: ModalModule) {
    throwIfAlreadyLoaded(parentModule, 'ModalModule')
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/modal/modal.service.ts]" value="import { Injectable } from '@angular/core';

@Injectable()
export class ModalService {
  activate: (message?: string, title?: string) => Promise<boolean>;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/module-import-guard.ts]" value="export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {
  if (parentModule) {
    throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/nav/nav.component.ts]" value="import { Component, OnInit } from '@angular/core';

import { MessageService, ModalService } from '../';

class MenuItem {
  constructor(public caption: string, public link: any[]) { }
}

@Component({
  moduleId: module.id,
  selector: 'story-nav',
  templateUrl: 'nav.component.html',
  styleUrls: ['nav.component.css'],
})
export class NavComponent implements OnInit {
  menuItems: MenuItem[];

  ngOnInit() {
    this.menuItems = [
      { caption: 'Dashboard', link: ['/dashboard'] },
      { caption: 'Characters', link: ['/characters'] },
      { caption: 'Vehicles', link: ['/vehicles'] },
      { caption: 'Admin', link: ['/admin'] },
      { caption: 'Login', link: ['/login'] },
    ];
  }

  constructor(
    private messageService: MessageService,
    private modalService: ModalService) {
  }

  resetDb() {
    let msg = 'Are you sure you want to reset the database?';
    this.modalService.activate(msg).then(responseOK => {
      if (responseOK) {
        this.messageService.resetDb();
      }
    });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/rxjs-extensions.ts]" value="import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/delay';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/finally';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/throw';


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/spinner/spinner.component.ts]" value="import { Component, OnDestroy, OnInit } from '@angular/core';
import { Subscription } from 'rxjs/Subscription';

import { SpinnerState, SpinnerService } from './spinner.service';

@Component({
  moduleId: module.id,
  selector: 'story-spinner',
  templateUrl: 'spinner.component.html',
  styleUrls: ['spinner.component.css']
})
export class SpinnerComponent implements OnDestroy, OnInit {
  visible = false;

  private spinnerStateChanged: Subscription;

  constructor(private spinnerService: SpinnerService) { }

  ngOnInit() {
    componentHandler.upgradeDom();
    this.spinnerStateChanged = this.spinnerService.spinnerState
      .subscribe((state: SpinnerState) => this.visible = state.show);
  }

  ngOnDestroy() {
    this.spinnerStateChanged.unsubscribe();
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/spinner/spinner.module.ts]" value="import { NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';

import { throwIfAlreadyLoaded } from '../module-import-guard';
import { SpinnerComponent }   from './spinner.component';
import { SpinnerService }   from './spinner.service';

@NgModule({
  imports: [CommonModule],
  exports: [SpinnerComponent],
  declarations: [SpinnerComponent],
  providers: [SpinnerService]
})
export class SpinnerModule {
  constructor( @Optional() @SkipSelf() parentModule: SpinnerModule) {
    throwIfAlreadyLoaded(parentModule, 'SpinnerModule')
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/spinner/spinner.service.ts]" value="import { Injectable, Optional, SkipSelf } from '@angular/core';
import { Subject } from 'rxjs/Subject';

export interface SpinnerState {
  show: boolean;
}

@Injectable()
export class SpinnerService {
  private spinnerSubject = new Subject<SpinnerState>();

  spinnerState = this.spinnerSubject.asObservable();

  constructor(@Optional() @SkipSelf() prior: SpinnerService) {
    if (prior) { return prior; }
    console.log(&quot;created spinner service&quot;)
  }

  show() {
    this.spinnerSubject.next(<SpinnerState>{ show: true });
  }

  hide() {
    this.spinnerSubject.next(<SpinnerState>{ show: false });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/toast/toast.component.ts]" value="import { Component, OnDestroy, OnInit } from '@angular/core';
import { ToastService } from './toast.service';

import { Subscription } from 'rxjs/Subscription'

@Component({
  moduleId: module.id,
  selector: 'story-toast',
  templateUrl: 'toast.component.html',
  styleUrls: ['toast.component.css']
})
export class ToastComponent implements OnDestroy, OnInit {
  private defaults = {
    title: '',
    message: 'May the Force be with You'
  };
  private toastElement: any;
  private toastSubscription: Subscription;

  title: string;
  message: string;

  constructor(private toastService: ToastService) {
    this.toastSubscription = this.toastService.toastState.subscribe((toastMessage) => {
      console.log(`activiting toast: ${toastMessage.message}`)
      this.activate(toastMessage.message);
    });
  }

  activate(message = this.defaults.message, title = this.defaults.title) {
    this.title = title;
    this.message = message;
    this.show();
  }

  ngOnInit() {
    this.toastElement = document.getElementById('toast');
  }

  ngOnDestroy() {
    this.toastSubscription.unsubscribe();
  }

  private show() {
    console.log(this.message);
    this.toastElement.style.opacity = 1;
    this.toastElement.style.zIndex = 9999;

    window.setTimeout(() => this.hide(), 2500);
  }

  private hide() {
    this.toastElement.style.opacity = 0;
    window.setTimeout(() => this.toastElement.style.zIndex = 0, 400);
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/toast/toast.module.ts]" value="import { NgModule, Optional, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';

import { throwIfAlreadyLoaded } from '../module-import-guard';
import { ToastComponent } from './toast.component';
import { ToastService } from './toast.service';

@NgModule({
  imports: [CommonModule],
  exports: [ToastComponent],
  declarations: [ToastComponent],
  providers: [ToastService]
})
export class ToastModule {
  constructor(@Optional() @SkipSelf() parentModule: ToastModule) {
    throwIfAlreadyLoaded(parentModule, 'ToastModule')
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/toast/toast.service.ts]" value="import { Injectable, Optional, SkipSelf } from '@angular/core';
import { Subject } from 'rxjs/Subject';

export interface ToastMessage {
  message:string
}

@Injectable()
export class ToastService {
  private toastSubject = new Subject<ToastMessage>();

  toastState = this.toastSubject.asObservable();

  constructor(@Optional() @SkipSelf() prior: ToastService) {
    if (prior) {
      console.log('toast service already exists');
      return prior;
    } else {
      console.log('created toast service')
    }
  }

  activate(message?: string) {
    this.toastSubject.next(<ToastMessage>{ message: message });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/user-profile.service.ts]" value="import { Injectable } from '@angular/core';

@Injectable()
export class UserProfileService {
  isLoggedIn: boolean = false;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/dashboard/dashboard-routing.module.ts]" value="import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { DashboardComponent } from './dashboard.component';

const routes: Routes = [
  { path: '', component: DashboardComponent, data: {title: 'Top Characters'} },
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
})
export class DashboardRoutingModule { }

export const routedComponents = [DashboardComponent];


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/dashboard/dashboard.component.ts]" value="import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { Subscription } from 'rxjs/Subscription';

import { Character, CharacterService } from '../../app/models';
import { ToastService } from '../../app/core';

@Component({
  moduleId: module.id,
  selector: 'story-dashboard',
  templateUrl: 'dashboard.component.html',
  styleUrls: ['dashboard.component.css']
})
export class DashboardComponent implements OnDestroy, OnInit {
  private dbResetSubscription: Subscription;

  characters: Observable<Character[]>;
  title: string;

  constructor(
    private route: ActivatedRoute,
    private characterService: CharacterService,
    private router: Router,
    private toastService: ToastService) { }

  getCharacters() {
    this.characters = this.characterService.getCharacters()
      .do(() => this.toastService.activate('Got characters for the dashboard'))
      .catch(e => {
        this.toastService.activate(`${e}`);
        return Observable.of([]);
      });
  }

  gotoDetail(character: Character) {
    let link = ['/characters', character.id];
    this.router.navigate(link);
  }

  ngOnDestroy() {
    this.dbResetSubscription.unsubscribe();
  }

  ngOnInit() {
    this.route.data.subscribe((data: { title: string }) => {
      this.title = data.title;
    });
    this.getCharacters();
    this.dbResetSubscription = this.characterService.onDbReset
      .subscribe(() => this.getCharacters());
  }

  trackByCharacters(index: number, character: Character) {
    return character.id;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/dashboard/dashboard.module.ts]" value="import { NgModule } from '@angular/core';

import { DashboardButtonComponent } from './shared/dashboard-button/dashboard-button.component';
import { DashboardRoutingModule, routedComponents } from './dashboard-routing.module';
import { SharedModule } from '../shared/shared.module';

@NgModule({
  imports: [DashboardRoutingModule, SharedModule],
  declarations: [DashboardButtonComponent, routedComponents]
})
export class DashboardModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/dashboard/shared/dashboard-button/dashboard-button.component.ts]" value="import { Component, Input, OnInit } from '@angular/core';

import { Character } from '../../../models';

@Component({
  moduleId: module.id,
  selector: 'story-dashboard-button',
  templateUrl: 'dashboard-button.component.html',
  styleUrls: ['dashboard-button.component.css']
})
export class DashboardButtonComponent implements OnInit {
  @Input() character: Character;

  constructor() {}

  ngOnInit() {
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/login/login-routing.module.ts]" value="import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { LoginComponent } from './login.component';

const routes: Routes = [
  { path: 'login', component: LoginComponent }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
})
export class LoginRoutingModule { }

export const routedComponents = [LoginComponent];


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/login/login.component.ts]" value="import { Component, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from 'rxjs/Subscription';

import { LoginService } from './login.service';
import { ToastService, UserProfileService } from '../core';

@Component({
  moduleId: module.id,
  templateUrl: 'login.component.html',
  providers: [LoginService]
})
export class LoginComponent implements OnDestroy {
  private loginSub: Subscription;

  constructor(
    private loginService: LoginService,
    private route: ActivatedRoute,
    private router: Router,
    private toastService: ToastService,
    private userProfileService: UserProfileService) {
  }

  public get isLoggedIn() : boolean {
    return this.userProfileService.isLoggedIn;
  }

  login() {
    this.loginSub = this.loginService
      .login()
      .mergeMap(loginResult => this.route.queryParams)
      .map(qp => qp['redirectTo'])
      .subscribe(redirectTo => {
        this.toastService.activate(`Successfully logged in`);
        if (this.userProfileService.isLoggedIn) {
          let url = redirectTo ? [redirectTo] : [ '/dashboard' ];
          this.router.navigate(url);
        }
      });
  }

  logout() {
    this.loginService.logout();
    this.toastService.activate(`Successfully logged out`);
  }

  ngOnDestroy() {
    if (this.loginSub) {
      this.loginSub.unsubscribe();
    }
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/login/login.module.ts]" value="import { NgModule } from '@angular/core';

import { LoginRoutingModule, routedComponents } from './login-routing.module';
import { SharedModule } from '../shared/shared.module';

@NgModule({
  imports: [LoginRoutingModule, SharedModule],
  declarations: [routedComponents]
})
export class LoginModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/login/login.service.ts]" value="import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';

import { SpinnerService, UserProfileService } from '../../app/core';

@Injectable()
export class LoginService {
  constructor(
    private spinnerService: SpinnerService,
    private userProfileService: UserProfileService) { }

  login() {
    return Observable.of(true)
        .do(_ => this.spinnerService.show())
        .delay(1000)
        .do(this.toggleLogState.bind(this));
        // .do((val: boolean) => {
        //   this.isLoggedIn = true;
        //   console.log(this.isLoggedIn);
        // });
  }

  logout() {
    this.toggleLogState(false);
  }

  private toggleLogState(val: boolean) {
    this.userProfileService.isLoggedIn = val;
    this.spinnerService.hide();
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/models/character.model.ts]" value="export class Character {
  id: number;
  name: string;
  side: string;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/models/character.service.ts]" value="import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';

import { Character } from './character.model';
import { CONFIG, ExceptionService, MessageService, SpinnerService } from '../core';

let charactersUrl = CONFIG.baseUrls.characters;

@Injectable()
export class CharacterService {
  onDbReset = this.messageService.state;

  constructor(private http: Http,
    private exceptionService: ExceptionService,
    private messageService: MessageService,
    private spinnerService: SpinnerService) {
    this.messageService.state.subscribe(state => this.getCharacters());
  }

  addCharacter(character: Character) {
    let body = JSON.stringify(character);
    this.spinnerService.show();
    return <Observable<Character>>this.http
      .post(`${charactersUrl}`, body)
      .map(res => res.json().data)
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  deleteCharacter(character: Character) {
    this.spinnerService.show();
    return <Observable<Character>>this.http
      .delete(`${charactersUrl}/${character.id}`)
      .map(res => this.extractData<Character>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  getCharacters() {
    this.spinnerService.show();
    return <Observable<Character[]>>this.http
      .get(charactersUrl)
      .map(res => this.extractData<Character[]>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  getCharacter(id: number) {
    this.spinnerService.show();
    return <Observable<Character>>this.http
      .get(`${charactersUrl}/${id}`)
      .map(res => this.extractData<Character>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  updateCharacter(character: Character) {
    let body = JSON.stringify(character);
    this.spinnerService.show();

    return <Observable<Character>>this.http
      .put(`${charactersUrl}/${character.id}`, body)
      .map(res => this.extractData<Character>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  private extractData<T>(res: Response) {
    if (res.status < 200 || res.status >= 300) {
      throw new Error('Bad response status: ' + res.status);
    }
    let body = res.json ? res.json() : null;
    return <T>(body &amp;&amp; body.data || {});
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/models/index.ts]" value="export * from './character.model';
export * from './character.service';


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/page-not-found.component.ts]" value="import { Component } from '@angular/core';

@Component({
  moduleId: module.id,
  selector: 'story-404',
  template: `
    <article class=&quot;template animated slideInRight&quot;>
      <h4>Inconceivable!</h4>
      <div>I do not think this page is where you think it is.</div>
    </article>
  `
})
export class PageNotFoundComponent { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/shared/filter-text/filter-text.component.ts]" value="import { Component, EventEmitter, Output } from '@angular/core';

@Component({
  moduleId: module.id,
  selector: 'story-filter-text',
  templateUrl: 'filter-text.component.html'
})
export class FilterTextComponent {
  @Output() changed: EventEmitter<string>;

  filter: string;

  constructor() {
    this.changed = new EventEmitter<string>();

    componentHandler.upgradeDom();
  }

  clear() {
    this.filter = '';
  }

  filterChanged(event: any) {
    event.preventDefault();
    console.log(`Filter Changed: ${this.filter}`);
    this.changed.emit(this.filter);
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/shared/filter-text/filter-text.module.ts]" value="import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

import { FilterTextComponent } from './filter-text.component';
import { FilterTextService } from './filter-text.service';

@NgModule({
  imports: [CommonModule, FormsModule],
  exports: [FilterTextComponent],
  declarations: [FilterTextComponent],
  providers: [FilterTextService]
})
export class FilterTextModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/shared/filter-text/filter-text.service.ts]" value="import { Injectable } from '@angular/core';

@Injectable()
export class FilterTextService {
  constructor() {
    console.log('Created an instance of FilterTextService');
  }

  filter(data: string, props: Array<string>, originalList: Array<any>) {
    let filteredList: any[];
    if (data &amp;&amp; props &amp;&amp; originalList) {
      data = data.toLowerCase();
      let filtered = originalList.filter(item => {
        let match = false;
        for (let prop of props) {
          if (item[prop].toString().toLowerCase().indexOf(data) > -1) {
            match = true;
            break;
          }
        };
        return match;
      });
      filteredList = filtered;
    } else {
      filteredList = originalList;
    }
    return filteredList;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/shared/init-caps.pipe.ts]" value="import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'initCaps' })
export class InitCapsPipe implements PipeTransform {
  transform(value: string) { // , args?: any[]) {
    return value
      .toLowerCase()
      .replace(/(?:^|\s)[a-z]/g, function(m) {
        return m.toUpperCase();
      });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/shared/shared.module.ts]" value="import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

import { FilterTextModule } from './filter-text/filter-text.module'

import { InitCapsPipe } from './init-caps.pipe';

// imports: imports the module's exports. which are usually
// declarables(components / directives / pipes) and providers.
// in our case the FilterTextModule has a provider.
//
// exports: exports modules AND declarables (components/directives/pipes) that other modules may want to use
// SharedModule does not use CommonModule, but does use FormsModule.
// Even so, we import/export both of these because most other modules will import SharedModule and will need them.
@NgModule({
  imports: [CommonModule, FilterTextModule, FormsModule],
  exports: [CommonModule, FilterTextModule, FormsModule, InitCapsPipe],
  declarations: [InitCapsPipe],
})
export class SharedModule { }


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/shared/vehicle-button/vehicle-button.component.ts]" value="import { Component, Input, OnInit } from '@angular/core';

import { Vehicle } from '../vehicle.model';

@Component({
  moduleId: module.id,
  selector: 'story-vehicle-button',
  templateUrl: 'vehicle-button.component.html',
  styleUrls: ['vehicle-button.component.css'],
})
export class VehicleButtonComponent implements OnInit {
  @Input() vehicle: Vehicle;

  constructor() {}

  ngOnInit() {
  }

}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/shared/vehicle-resolver.service.ts]" value="import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs/Observable';

import { Vehicle } from './vehicle.model';
import { VehicleService } from './vehicle.service';

@Injectable()
export class VehicleResolver implements Resolve<Vehicle> {
  constructor(
    private vehicleService: VehicleService,
    private router: Router
  ) { }

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
    let id = +route.params['id'];
    return this.vehicleService.getVehicle(id)
      .map(vehicle => {
        if (vehicle) {
          return vehicle;
        }
        // Return a new object, because we're going to create a new one
        return new Vehicle();
        // We could throw an error here and catch it
        // and route back to the speaker list
        // let msg = `vehicle id ${id} not found`;
        // console.log(msg);
        // throw new Error(msg)
      })
      .catch((error: any) => {
        console.log(`${error}. Heading back to vehicle list`);
        this.router.navigate(['/vehicles']);
        return Observable.of(null);
      });
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/shared/vehicle.model.ts]" value="export class Vehicle {
  id: number;
  name: string;
  type: string;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/shared/vehicle.service.ts]" value="import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';

import { Vehicle } from './vehicle.model';
import { CONFIG, ExceptionService, MessageService, SpinnerService } from '../../core';

let vehiclesUrl = CONFIG.baseUrls.vehicles;

@Injectable()
export class VehicleService {
  onDbReset = this.messageService.state;

  constructor(private http: Http,
    private exceptionService: ExceptionService,
    private messageService: MessageService,
    private spinnerService: SpinnerService) {
    this.messageService.state.subscribe(state => this.getVehicles());
  }

  addVehicle(vehicle: Vehicle) {
    let body = JSON.stringify(vehicle);
    this.spinnerService.show();
    return <Observable<Vehicle>>this.http
      .post(`${vehiclesUrl}`, body)
      .map(res => <Vehicle>res.json().data)
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  deleteVehicle(vehicle: Vehicle) {
    this.spinnerService.show();
    return <Observable<Vehicle>>this.http
      .delete(`${vehiclesUrl}/${vehicle.id}`)
      .map(res => this.extractData<Vehicle>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  getVehicles() {
    this.spinnerService.show();
    return <Observable<Vehicle[]>>this.http
      .get(vehiclesUrl)
      .map(res => this.extractData<Vehicle[]>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  private extractData<T>(res: Response) {
    if (res.status < 200 || res.status >= 300) {
      throw new Error('Bad response status: ' + res.status);
    }
    let body = res.json ? res.json() : null;
    return <T>(body &amp;&amp; body.data || {});
  }

  getVehicle(id: number) {
    this.spinnerService.show();
    return <Observable<Vehicle>>this.http
      .get(`${vehiclesUrl}/${id}`)
      .map(res => this.extractData<Vehicle>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }

  updateVehicle(vehicle: Vehicle) {
    let body = JSON.stringify(vehicle);
    this.spinnerService.show();

    return <Observable<Vehicle>>this.http
      .put(`${vehiclesUrl}/${vehicle.id}`, body)
      .map(res => this.extractData<Vehicle>(res))
      .catch(this.exceptionService.catchBadResponse)
      .finally(() => this.spinnerService.hide());
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicle-list/vehicle-list.component.ts]" value="import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { Subscription } from 'rxjs/Subscription';

import { FilterTextComponent } from '../../shared/filter-text/filter-text.component';
import { FilterTextService } from '../../shared/filter-text/filter-text.service';
import { Vehicle } from '../shared/vehicle.model';
import { VehicleService } from '../shared/vehicle.service';

@Component({
  moduleId: module.id,
  selector: 'story-vehicle-list',
  templateUrl: 'vehicle-list.component.html',
  styleUrls: ['vehicle-list.component.css']
})
export class VehicleListComponent implements OnDestroy, OnInit {
  private dbResetSubscription: Subscription;

  vehicles: Vehicle[];
  filteredVehicles = this.vehicles;
  @ViewChild(FilterTextComponent) filterComponent: FilterTextComponent;

  constructor(
    private filterService: FilterTextService,
    private vehicleService: VehicleService) { }

  filterChanged(searchText: string) {
    this.filteredVehicles = this.filterService.filter(searchText, ['id', 'name', 'type'], this.vehicles);
  }

  getVehicles() {
    this.vehicles = [];
    this.vehicleService.getVehicles()
      .subscribe(vehicles => {
        this.vehicles = this.filteredVehicles = vehicles;
        this.filterComponent.clear();
      },
      error => {
        console.log('error occurred here');
        console.log(error);
      },
       () => {
        console.log('vehicle retrieval completed');
      });
  }

  ngOnDestroy() {
    this.dbResetSubscription.unsubscribe();
  }

  ngOnInit() {
    componentHandler.upgradeDom();
    this.getVehicles();
    this.dbResetSubscription = this.vehicleService.onDbReset
      .subscribe(() => this.getVehicles());
  }

  trackByVehicles(index: number, vehicle: Vehicle) {
    return vehicle.id;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicle/vehicle.component.ts]" value="import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from 'rxjs/Subscription';

import { CanComponentDeactivate, EntityService, ModalService, ToastService } from '../../core';
import { Vehicle } from '../shared/vehicle.model';
import { VehicleService } from '../shared/vehicle.service';

@Component({
  moduleId: module.id,
  selector: 'story-vehicle',
  templateUrl: 'vehicle.component.html',
  styleUrls: ['vehicle.component.css']
})
export class VehicleComponent implements OnDestroy, OnInit, CanComponentDeactivate {
  @Input() vehicle: Vehicle;
  editVehicle: Vehicle = <Vehicle>{};

  private dbResetSubscription: Subscription;
  private id: any;

  constructor(private entityService: EntityService,
    private modalService: ModalService,
    private route: ActivatedRoute,
    private router: Router,
    private vehicleService: VehicleService,
    private toastService: ToastService) { }

  cancel(showToast = true) {
    this.editVehicle = this.entityService.clone(this.vehicle);
    if (showToast) {
      this.toastService.activate(`Cancelled changes to ${this.vehicle.name}`);
    }
  }

  canDeactivate() {
    return !this.vehicle ||
      !this.isDirty() ||
      this.modalService.activate();
  }

  delete() {
    let msg = `Do you want to delete the ${this.vehicle.name}?`;
    this.modalService.activate(msg).then((responseOK) => {
      if (responseOK) {
        this.cancel(false);
        this.vehicleService.deleteVehicle(this.vehicle)
          .subscribe(
          () => { // Success path
            this.toastService.activate(`Deleted ${this.vehicle.name}`);
            this.gotoVehicles();
          },
          (err) => this.handleServiceError('Delete', err), // Failure path
          () => console.log('Delete Completed') // Completed actions
          );
      }
    });
  }

  isAddMode() { return isNaN(this.id); }

  ngOnDestroy() {
    this.dbResetSubscription.unsubscribe();
  }

  ngOnInit() {
    componentHandler.upgradeDom();
    this.dbResetSubscription =
      this.vehicleService.onDbReset.subscribe(() => this.getVehicle());

    // ** Could use a snapshot here, as long as the parameters do not change.
    // ** This may happen when a component is re-used, such as fwd/back.
    // this.id = +this.route.snapshot.params['id'];
    //
    // ** We could use a subscription to get the parameter, too.
    // ** The ActivatedRoute gets unsubscribed
    // this.route
    //   .params
    //   .map(params => params['id'])
    //   .do(id => this.id = +id)
    //   .subscribe(id => this.getVehicle());
    //
    // ** Instead we will use a Resolve(r)
    this.route.data.subscribe((data: { vehicle: Vehicle }) => {
      this.setEditVehicle(data.vehicle);
      this.id = this.vehicle.id;
    });
  }

  save() {
    let vehicle = this.vehicle =
      this.entityService.merge(this.vehicle, this.editVehicle);
    if (vehicle.id == null) {
      this.vehicleService.addVehicle(vehicle).subscribe(s => {
        this.setEditVehicle(s);
        this.toastService.activate(`Successfully added ${s.name}`);
        this.gotoVehicles();
      });
      return;
    }
    this.vehicleService.updateVehicle(this.vehicle)
      .subscribe(() => this.toastService.activate(
        `Successfully saved ${this.vehicle.name}`));
  }

  private getVehicle() {
    if (this.id === 0) {
      return;
    };
    if (this.isAddMode()) {
      this.vehicle = <Vehicle>{ name: '', type: '' };
      this.editVehicle = this.entityService.clone(this.vehicle);
      return;
    }
    this.vehicleService.getVehicle(this.id).subscribe(
      (vehicle: Vehicle) => this.setEditVehicle(vehicle));
  }

  private gotoVehicles() {
    this.router.navigate(['/vehicles']);
  }

  private handleServiceError(op: string, err: any) {
    console.error(`${op} error: ${err.message || err}`);
  }

  private isDirty() {
    return this.entityService.propertiesDiffer(this.vehicle, this.editVehicle);
  }

  private setEditVehicle(vehicle: Vehicle) {
    if (vehicle) {
      this.vehicle = vehicle;
      this.editVehicle = this.entityService.clone(this.vehicle);
    } else {
      this.gotoVehicles();
    }
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicles-routing.module.ts]" value="import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { VehicleListComponent } from './vehicle-list/vehicle-list.component';
import { VehicleComponent } from './vehicle/vehicle.component';
import { VehiclesComponent } from './vehicles.component';
import { VehicleResolver } from './shared/vehicle-resolver.service';
import { CanDeactivateGuard } from '../core';

const routes: Routes = [
  {
    path: '',
    component: VehiclesComponent,
    children: [
      {
        path: '',
        component: VehicleListComponent,
      },
      {
        path: ':id',
        component: VehicleComponent,
        canDeactivate: [CanDeactivateGuard],
        resolve: {
          vehicle: VehicleResolver
        }
      },
    ]
  },
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
  providers: [VehicleResolver]
})
export class VehiclesRoutingModule { }

export const routedComponents = [VehiclesComponent, VehicleListComponent, VehicleComponent];


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicles.component.ts]" value="import { Component } from '@angular/core';

import { VehicleService } from './shared/vehicle.service';

@Component({
  // selector: 'story-vehicles',
  template: `<router-outlet></router-outlet>`,
  providers: [VehicleService]
})
export class VehiclesComponent  {}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicles.module.ts]" value="import { NgModule } from '@angular/core';

import { VehicleButtonComponent } from './shared/vehicle-button/vehicle-button.component';

import { routedComponents, VehiclesRoutingModule } from './vehicles-routing.module';

import { SharedModule } from '../shared/shared.module';
import { VehicleService } from './shared/vehicle.service'; 

@NgModule({
  imports: [SharedModule, VehiclesRoutingModule],
  declarations: [VehicleButtonComponent, routedComponents],
  providers: [VehicleService]
})
export class VehiclesModule { }
// avoids having to lazy load with loadChildren: &quot;app/vehicles/vehicle.module#VehicleModule&quot;


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[main.ts]" value="import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';

platformBrowserDynamic().bootstrapModule(AppModule)
  .then(success => console.log(`Bootstrap success`))
  .catch(err => console.error(err));


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/app.component.css]" value=".mdl-layout__header {
  position: fixed;
  background-color: #222;
}
.mdl-layout__content {
  margin-top: 68px;
}

.nav-link {
  padding: 0 1em;
  width: 100px;
  color: rgba(255,255,255,.6);
  text-align: center;
  text-decoration: none;
}

.nav-link.router-link-active {
  color: rgba(255,255,255, 1);
}

.nav-link.router-link-active::after {
    height: 3px;
    width: 100%;
    display: block;
    content: &quot; &quot;;
    bottom: 0;
    left: 0;
    position: inherit;
    background: rgb(255,64,129);
}

.md-title-icon > i {
  background-image: url(&quot;app/ps-icon.png&quot;);
  background-repeat: no-repeat;
  background-position: center center;
  padding: 1em 2em;
}

.mdl-layout__header-row {
    height: 56px;
    padding: 0 16px 0 72px;
    padding-left: 8px;
    background-color: #222;
}

.page-content {
  margin: 2em;
}

article.template {
  opacity: 0;
  -webkit-transition: opacity 400ms ease-in;
  -moz-transition: opacity 400ms ease-in;
  transition: opacity 400ms ease-in;
}

.animated {
  -webkit-animation-duration: 400ms;
  animation-duration: 400ms;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

#reset-button {
  position: fixed;
  right: 2em;
  top: 1em;
}

#spinner {
  border-width: 8em;
  position: fixed;
  top: 20%;
  left: 50%;
  margin-top: -50px;
  margin-left: -70px;
  z-index: 9999;
}

@media (max-width: 480px) {
  #reset-button {
    display: none
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/character-list/character-list.component.css]" value=".characters {
  list-style-type: none;
  padding: 0;
}

*.characters li {
  padding: 4px;
}

.list-text,
.mdl-card__title-text {
  font-size: 16px;
}

.mdl-card {
  min-height: 60px;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/character/character.component.css]" value=".mdl-textfield__label {top: 0;}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/characters/shared/character-button/character-button.component.css]" value=".mdl-card__title-text {font-size: 16px;}
.mdl-card {min-height: 60px;}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/modal/modal.component.css]" value=".dialog-container,
.loading-container {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    overflow: scroll;
    background: rgba(0, 0, 0, 0.4);
    z-index: 0;
    opacity: 0;
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
}

.dialog-container > div {
    position: relative;
    width: 90%;
    max-width: 500px;
    min-height: 25px;
    margin: 10% auto;
    z-index: 99999;
    padding: 16px 16px 0;
}

.dialog-button-bar {
    text-align: right;
    margin-top: 8px;
}

.loading-container > div {
    position: relative;
    width: 50px;
    height: 50px;
    margin: 10% auto;
    z-index: 99999;
}

.loading-container > div > div {
    width: 100%;
    height: 100%;
}

.dialog-container .dialog-button-bar button {
  margin: 0 0 0 1em;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/nav/nav.component.css]" value=".mdl-layout__header {
  display: flex;
  position: fixed;
  background-color: #222;
}

.nav-link {
  padding: 0 1em;
  width: 100px;
  color: rgba(255,255,255,.6);
  text-align: center;
  text-decoration: none;
}

.nav-link.router-link-active {
  color: rgba(255,255,255, 1);
}

.nav-link.router-link-active::after {
    height: 3px;
    width: 100%;
    display: block;
    content: &quot; &quot;;
    bottom: 0;
    left: 0;
    position: inherit;
    background: rgb(83,109,254);
    background: rgb(255,64,129);
}

.md-title-icon > i {
  /*background-image: url(&quot;assets/ng.png&quot;);*/
  background-image: url(&quot;assets/ps-icon.png&quot;);
  background-repeat: no-repeat;
  background-position: center center;
  padding: 1em 2em;
}

.mdl-layout__header-row {
  height: 56px;
  padding: 0 16px 0 72px;
  padding-left: 8px;
  background-color: #673AB7;
  background: #0033FF;
  background-color: #222;
}

#reset-button {
  position: fixed;
  right: 2em;
  top: 1em;
}

@media (max-width: 480px) {
  #reset-button {
    display: none
  }
}

@media (max-width: 320px) {
  a.nav-link {
    font-size: 12px;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/spinner/spinner.component.css]" value=".spinner {
  position: absolute;
  left: 46%;top: 12%
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/core/toast/toast.component.css]" value=".toast-container {
  /*-webkit-transition-property: opacity, bottom, left, right, width, margin, border-radius;
  transition-property: opacity, bottom, left, right, width, margin, border-radius;
  -webkit-transition-duration: 1.0s;
          transition-duration: 1.0s;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;*/
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: scroll;
  background: rgba(0, 0, 0, 0.4);
  z-index: 9999;
  opacity: 0;

  -webkit-transition: opacity 400ms ease-in;
  -moz-transition: opacity 400ms ease-in;
  transition: opacity 400ms ease-in;
}

.toast-container > * {
  text-align: center;
}

.toast-card {
  width: 100%;
  z-index: 1;
  padding: 2px;
  position: relative;
  /*background-color: #f06292;
  background-color: rgb(103,58,183);
  background-color: rgb(83,109,254);*/
  background-color: rgb(255,64,129);
  text-align: center;
  color: white;
}

.toast-card .toast-message {
  margin: 0em 2em 1em 2em;
}

.toast-card .toast-title {
  text-transform: uppercase;
  margin: 16px;
  font-size: 18px;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/dashboard/dashboard.component.css]" value=".mdl-cell--col-3 {
  width: 25%;
}

@media (max-width: 839px) and (min-width: 480px){
  .mdl-cell.mdl-cell--3-col {
    width: 25%;
  }
}

@media (max-width: 479px) and (min-width: 320px) {
  .mdl-cell.mdl-cell--3-col {
    width: 10em;
    margin: 0.5em auto;
  }
}

@media (max-width: 319px) {
  .mdl-cell.mdl-cell--3-col {
    width: 10em;
    margin: 0.5em auto;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/dashboard/shared/dashboard-button/dashboard-button.component.css]" value="button {
  width: 200px;height: 70px;
  color: #111;
}

@media (max-width: 1024px) {
  button {
    width: 180px;
    line-height: 18px;
    font-size: 12px;
  }
}

@media (max-width: 839px) {
  button {
    width: 120px;
    line-height: 18px;
    font-size: 12px;
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/shared/vehicle-button/vehicle-button.component.css]" value=".mdl-card__title-text {font-size: 16px;}
.mdl-card {min-height: 60px;}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicle-list/vehicle-list.component.css]" value=".vehicles {
  list-style-type: none;
  padding: 0;
}

*.vehicles li {
  padding: 4px;
}

.list-text,
.mdl-card__title-text {
  font-size: 16px;
}

.mdl-card {
  min-height: 60px;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/vehicles/vehicle/vehicle.component.css]" value=".mdl-textfield__label {top: 0;}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[assets/animate.css]" value="@charset &quot;UTF-8&quot;;

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.0
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2016 Daniel Eden
 */

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
}

@-webkit-keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0,-4px,0);
    transform: translate3d(0,-4px,0);
  }
}

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0,-4px,0);
    transform: translate3d(0,-4px,0);
  }
}

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

@-webkit-keyframes flash {
  from, 50%, to {
    opacity: 1;
  }

  25%, 75% {
    opacity: 0;
  }
}

@keyframes flash {
  from, 50%, to {
    opacity: 1;
  }

  25%, 75% {
    opacity: 0;
  }
}

.flash {
  -webkit-animation-name: flash;
  animation-name: flash;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
}

@-webkit-keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    -webkit-transform: scale3d(.95, 1.05, 1);
    transform: scale3d(.95, 1.05, 1);
  }

  75% {
    -webkit-transform: scale3d(1.05, .95, 1);
    transform: scale3d(1.05, .95, 1);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    -webkit-transform: scale3d(.95, 1.05, 1);
    transform: scale3d(.95, 1.05, 1);
  }

  75% {
    -webkit-transform: scale3d(1.05, .95, 1);
    transform: scale3d(1.05, .95, 1);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand;
}

@-webkit-keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

.shake {
  -webkit-animation-name: shake;
  animation-name: shake;
}

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

.headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake;
}

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing;
}

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  10%, 20% {
    -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
  }

  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  10%, 20% {
    -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
  }

  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.tada {
  -webkit-animation-name: tada;
  animation-name: tada;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none;
  }

  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none;
  }

  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble;
}

@-webkit-keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none;
  }

  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

@keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none;
  }

  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center;
}

@-webkit-keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    -webkit-transform: scale3d(.9, .9, .9);
    transform: scale3d(.9, .9, .9);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    -webkit-transform: scale3d(.97, .97, .97);
    transform: scale3d(.97, .97, .97);
  }

  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    -webkit-transform: scale3d(.9, .9, .9);
    transform: scale3d(.9, .9, .9);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    -webkit-transform: scale3d(.97, .97, .97);
    transform: scale3d(.97, .97, .97);
  }

  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}

@-webkit-keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown;
}

@-webkit-keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft;
}

@-webkit-keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0);
  }

  to {
    -webkit-transform: none;
    transform: none;
  }
}

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight;
}

@-webkit-keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp;
}

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(.9, .9, .9);
    transform: scale3d(.9, .9, .9);
  }

  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }
}

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(.9, .9, .9);
    transform: scale3d(.9, .9, .9);
  }

  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }
}

.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut;
}

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown;
}

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft;
}

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight;
}

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig;
}

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig;
}

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig;
}

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig;
}

@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown;
}

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig;
}

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft;
}

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig;
}

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight;
}

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig;
}

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp;
}

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig;
}

@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  80% {
    -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
    transform: perspective(400px) scale3d(.95, .95, .95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

@keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  80% {
    -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
    transform: perspective(400px) scale3d(.95, .95, .95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip;
}

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX;
}

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY;
}

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
}

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY;
}

@-webkit-keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1;
  }

  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1;
  }

  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in;
}

@-webkit-keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
}

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
}

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
}

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
}

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
  }
}

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
}

@-webkit-keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

@keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut;
}

@-webkit-keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
}

@-webkit-keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
}

@-webkit-keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
}

@-webkit-keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
}

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

@keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut;
}

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  50% {
    opacity: 1;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  50% {
    opacity: 1;
  }
}

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown;
}

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft;
}

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight;
}

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp;
}

@-webkit-keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  to {
    opacity: 0;
  }
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  to {
    opacity: 0;
  }
}

.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut;
}

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown;
}

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
    transform: scale(.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center;
  }
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
    transform: scale(.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center;
  }
}

.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft;
}

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
    transform: scale(.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center;
  }
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
    transform: scale(.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center;
  }
}

.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight;
}

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp;
}

@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown;
}

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft;
}

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight;
}

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}

@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown;
}

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft;
}

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight;
}

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[assets/app.css]" value=".animated {
  -webkit-animation-duration: 500ms;
  animation-duration: 500ms;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.not-displayed {
  display: none;
}

.story-card { max-width: 100% }

@media (max-width: 320px) {
  .story-button {
    font-size: 12px;
    padding: 0em;
  }
}

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(5%, 0, 0);
    transform: translate3d(5%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(5%, 0, 0);
    transform: translate3d(5%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[assets/material.deep_orange-pink.min.css]" value="/**
 * material-design-lite - Material Design Components in CSS, JS and HTML
 * @version v1.0.6
 * @license Apache-2.0
 * @copyright 2015 Google, Inc.
 * @link https://github.com/google/material-design-lite
 */
@charset &quot;UTF-8&quot;;

html {
    color: rgba(0,0,0,.87)
}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none
}

::selection {
    background: #b3d4fc;
    text-shadow: none
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0
}

audio,canvas,iframe,img,svg,video {
    vertical-align: middle
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0
}

textarea {
    resize: vertical
}

.browserupgrade {
    margin: .2em 0;
    background: #ccc;
    color: #000;
    padding: .2em 0
}

.hidden {
    display: none!important
}

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px
}

.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto
}

.invisible {
    visibility: hidden
}

.clearfix:before,.clearfix:after {
    content: &quot; &quot;;
    display: table
}

.clearfix:after {
    clear: both
}

@media print {
    *,*:before,*:after,*:first-letter,*:first-line {
        background: 0 0!important;
        color: #000!important;
        box-shadow: none!important;
        text-shadow: none!important
    }

    a,a:visited {
        text-decoration: underline
    }

    a[href]:after {
        content: &quot; (&quot; attr(href)&quot;)&quot;
    }

    abbr[title]:after {
        content: &quot; (&quot; attr(title)&quot;)&quot;
    }

    a[href^=&quot;#&quot;]:after,a[href^=&quot;javascript:&quot;]:after {
        content: &quot;&quot;
    }

    pre,blockquote {
        border: 1px solid #999;
        page-break-inside: avoid
    }

    thead {
        display: table-header-group
    }

    tr,img {
        page-break-inside: avoid
    }

    img {
        max-width: 100%!important
    }

    p,h2,h3 {
        orphans: 3;
        widows: 3
    }

    h2,h3 {
        page-break-after: avoid
    }
}

a,.mdl-accordion,.mdl-button,.mdl-card,.mdl-checkbox,.mdl-dropdown-menu,.mdl-icon-toggle,.mdl-item,.mdl-radio,.mdl-slider,.mdl-switch,.mdl-tabs__tab {
    -webkit-tap-highlight-color: transparent;
    -webkit-tap-highlight-color: rgba(255,255,255,0)
}

html {
    width: 100%;
    height: 100%;
    -ms-touch-action: manipulation;
    touch-action: manipulation
}

body {
    width: 100%;
    min-height: 100%
}

main {
    display: block
}

*[hidden] {
    display: none!important
}

html,body {
    font-family: &quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px
}

h1,h2,h3,h4,h5,h6,p {
    padding: 0
}

h1 small,h2 small,h3 small,h4 small,h5 small,h6 small {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -.02em;
    opacity: .54;
    font-size: .6em
}

h1 {
    font-size: 56px;
    line-height: 1.35;
    letter-spacing: -.02em;
    margin: 24px 0
}

h1,h2 {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-weight: 400
}

h2 {
    font-size: 45px;
    line-height: 48px
}

h2,h3 {
    margin: 24px 0
}

h3 {
    font-size: 34px;
    line-height: 40px
}

h3,h4 {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-weight: 400
}

h4 {
    font-size: 24px;
    line-height: 32px;
    -moz-osx-font-smoothing: grayscale;
    margin: 24px 0 16px
}

h5 {
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .02em
}

h5,h6 {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    margin: 24px 0 16px
}

h6 {
    font-size: 16px;
    letter-spacing: .04em
}

h6,p {
    font-weight: 400;
    line-height: 24px
}

p {
    font-size: 14px;
    letter-spacing: 0;
    margin: 0 0 16px
}

a {
    color: rgb(255,64,129);
    font-weight: 500
}

blockquote {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    position: relative;
    font-size: 24px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.35;
    letter-spacing: .08em
}

blockquote:before {
    position: absolute;
    left: -.5em;
    content: '“'
}

blockquote:after {
    content: '”';
    margin-left: -.05em
}

mark {
    background-color: #f4ff81
}

dt {
    font-weight: 700
}

address {
    font-size: 12px;
    line-height: 1;
    font-style: normal
}

address,ul,ol {
    font-weight: 400;
    letter-spacing: 0
}

ul,ol {
    font-size: 14px;
    line-height: 24px
}

.mdl-typography--display-4,.mdl-typography--display-4-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 112px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: -.04em
}

.mdl-typography--display-4-color-contrast {
    opacity: .54
}

.mdl-typography--display-3,.mdl-typography--display-3-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 56px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: -.02em
}

.mdl-typography--display-3-color-contrast {
    opacity: .54
}

.mdl-typography--display-2,.mdl-typography--display-2-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 45px;
    font-weight: 400;
    line-height: 48px
}

.mdl-typography--display-2-color-contrast {
    opacity: .54
}

.mdl-typography--display-1,.mdl-typography--display-1-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 34px;
    font-weight: 400;
    line-height: 40px
}

.mdl-typography--display-1-color-contrast {
    opacity: .54
}

.mdl-typography--headline,.mdl-typography--headline-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 32px;
    -moz-osx-font-smoothing: grayscale
}

.mdl-typography--headline-color-contrast {
    opacity: .87
}

.mdl-typography--title,.mdl-typography--title-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .02em
}

.mdl-typography--title-color-contrast {
    opacity: .87
}

.mdl-typography--subhead,.mdl-typography--subhead-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: .04em
}

.mdl-typography--subhead-color-contrast {
    opacity: .87
}

.mdl-typography--body-2,.mdl-typography--body-2-color-contrast {
    font-size: 14px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: 0
}

.mdl-typography--body-2-color-contrast {
    opacity: .87
}

.mdl-typography--body-1,.mdl-typography--body-1-color-contrast {
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0
}

.mdl-typography--body-1-color-contrast {
    opacity: .87
}

.mdl-typography--body-2-force-preferred-font,.mdl-typography--body-2-force-preferred-font-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 24px;
    letter-spacing: 0
}

.mdl-typography--body-2-force-preferred-font-color-contrast {
    opacity: .87
}

.mdl-typography--body-1-force-preferred-font,.mdl-typography--body-1-force-preferred-font-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0
}

.mdl-typography--body-1-force-preferred-font-color-contrast {
    opacity: .87
}

.mdl-typography--caption,.mdl-typography--caption-force-preferred-font {
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0
}

.mdl-typography--caption-force-preferred-font {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif
}

.mdl-typography--caption-color-contrast,.mdl-typography--caption-force-preferred-font-color-contrast {
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    opacity: .54
}

.mdl-typography--caption-force-preferred-font-color-contrast,.mdl-typography--menu {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif
}

.mdl-typography--menu {
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0
}

.mdl-typography--menu-color-contrast {
    opacity: .87
}

.mdl-typography--menu-color-contrast,.mdl-typography--button,.mdl-typography--button-color-contrast {
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0
}

.mdl-typography--button,.mdl-typography--button-color-contrast {
    text-transform: uppercase
}

.mdl-typography--button-color-contrast {
    opacity: .87
}

.mdl-typography--text-left {
    text-align: left
}

.mdl-typography--text-right {
    text-align: right
}

.mdl-typography--text-center {
    text-align: center
}

.mdl-typography--text-justify {
    text-align: justify
}

.mdl-typography--text-nowrap {
    white-space: nowrap
}

.mdl-typography--text-lowercase {
    text-transform: lowercase
}

.mdl-typography--text-uppercase {
    text-transform: uppercase
}

.mdl-typography--text-capitalize {
    text-transform: capitalize
}

.mdl-typography--font-thin {
    font-weight: 200!important
}

.mdl-typography--font-light {
    font-weight: 300!important
}

.mdl-typography--font-regular {
    font-weight: 400!important
}

.mdl-typography--font-medium {
    font-weight: 500!important
}

.mdl-typography--font-bold {
    font-weight: 700!important
}

.mdl-typography--font-black {
    font-weight: 900!important
}

.mdl-color-text--red {
    color: #f44336 !important
}

.mdl-color--red {
    background-color: #f44336 !important
}

.mdl-color-text--red-50 {
    color: #ffebee !important
}

.mdl-color--red-50 {
    background-color: #ffebee !important
}

.mdl-color-text--red-100 {
    color: #ffcdd2 !important
}

.mdl-color--red-100 {
    background-color: #ffcdd2 !important
}

.mdl-color-text--red-200 {
    color: #ef9a9a !important
}

.mdl-color--red-200 {
    background-color: #ef9a9a !important
}

.mdl-color-text--red-300 {
    color: #e57373 !important
}

.mdl-color--red-300 {
    background-color: #e57373 !important
}

.mdl-color-text--red-400 {
    color: #ef5350 !important
}

.mdl-color--red-400 {
    background-color: #ef5350 !important
}

.mdl-color-text--red-500 {
    color: #f44336 !important
}

.mdl-color--red-500 {
    background-color: #f44336 !important
}

.mdl-color-text--red-600 {
    color: #e53935 !important
}

.mdl-color--red-600 {
    background-color: #e53935 !important
}

.mdl-color-text--red-700 {
    color: #d32f2f !important
}

.mdl-color--red-700 {
    background-color: #d32f2f !important
}

.mdl-color-text--red-800 {
    color: #c62828 !important
}

.mdl-color--red-800 {
    background-color: #c62828 !important
}

.mdl-color-text--red-900 {
    color: #b71c1c !important
}

.mdl-color--red-900 {
    background-color: #b71c1c !important
}

.mdl-color-text--red-A100 {
    color: #ff8a80 !important
}

.mdl-color--red-A100 {
    background-color: #ff8a80 !important
}

.mdl-color-text--red-A200 {
    color: #ff5252 !important
}

.mdl-color--red-A200 {
    background-color: #ff5252 !important
}

.mdl-color-text--red-A400 {
    color: #ff1744 !important
}

.mdl-color--red-A400 {
    background-color: #ff1744 !important
}

.mdl-color-text--red-A700 {
    color: #d50000 !important
}

.mdl-color--red-A700 {
    background-color: #d50000 !important
}

.mdl-color-text--pink {
    color: #e91e63 !important
}

.mdl-color--pink {
    background-color: #e91e63 !important
}

.mdl-color-text--pink-50 {
    color: #fce4ec !important
}

.mdl-color--pink-50 {
    background-color: #fce4ec !important
}

.mdl-color-text--pink-100 {
    color: #f8bbd0 !important
}

.mdl-color--pink-100 {
    background-color: #f8bbd0 !important
}

.mdl-color-text--pink-200 {
    color: #f48fb1 !important
}

.mdl-color--pink-200 {
    background-color: #f48fb1 !important
}

.mdl-color-text--pink-300 {
    color: #f06292 !important
}

.mdl-color--pink-300 {
    background-color: #f06292 !important
}

.mdl-color-text--pink-400 {
    color: #ec407a !important
}

.mdl-color--pink-400 {
    background-color: #ec407a !important
}

.mdl-color-text--pink-500 {
    color: #e91e63 !important
}

.mdl-color--pink-500 {
    background-color: #e91e63 !important
}

.mdl-color-text--pink-600 {
    color: #d81b60 !important
}

.mdl-color--pink-600 {
    background-color: #d81b60 !important
}

.mdl-color-text--pink-700 {
    color: #c2185b !important
}

.mdl-color--pink-700 {
    background-color: #c2185b !important
}

.mdl-color-text--pink-800 {
    color: #ad1457 !important
}

.mdl-color--pink-800 {
    background-color: #ad1457 !important
}

.mdl-color-text--pink-900 {
    color: #880e4f !important
}

.mdl-color--pink-900 {
    background-color: #880e4f !important
}

.mdl-color-text--pink-A100 {
    color: #ff80ab !important
}

.mdl-color--pink-A100 {
    background-color: #ff80ab !important
}

.mdl-color-text--pink-A200 {
    color: #ff4081 !important
}

.mdl-color--pink-A200 {
    background-color: #ff4081 !important
}

.mdl-color-text--pink-A400 {
    color: #f50057 !important
}

.mdl-color--pink-A400 {
    background-color: #f50057 !important
}

.mdl-color-text--pink-A700 {
    color: #c51162 !important
}

.mdl-color--pink-A700 {
    background-color: #c51162 !important
}

.mdl-color-text--purple {
    color: #9c27b0 !important
}

.mdl-color--purple {
    background-color: #9c27b0 !important
}

.mdl-color-text--purple-50 {
    color: #f3e5f5 !important
}

.mdl-color--purple-50 {
    background-color: #f3e5f5 !important
}

.mdl-color-text--purple-100 {
    color: #e1bee7 !important
}

.mdl-color--purple-100 {
    background-color: #e1bee7 !important
}

.mdl-color-text--purple-200 {
    color: #ce93d8 !important
}

.mdl-color--purple-200 {
    background-color: #ce93d8 !important
}

.mdl-color-text--purple-300 {
    color: #ba68c8 !important
}

.mdl-color--purple-300 {
    background-color: #ba68c8 !important
}

.mdl-color-text--purple-400 {
    color: #ab47bc !important
}

.mdl-color--purple-400 {
    background-color: #ab47bc !important
}

.mdl-color-text--purple-500 {
    color: #9c27b0 !important
}

.mdl-color--purple-500 {
    background-color: #9c27b0 !important
}

.mdl-color-text--purple-600 {
    color: #8e24aa !important
}

.mdl-color--purple-600 {
    background-color: #8e24aa !important
}

.mdl-color-text--purple-700 {
    color: #7b1fa2 !important
}

.mdl-color--purple-700 {
    background-color: #7b1fa2 !important
}

.mdl-color-text--purple-800 {
    color: #6a1b9a !important
}

.mdl-color--purple-800 {
    background-color: #6a1b9a !important
}

.mdl-color-text--purple-900 {
    color: #4a148c !important
}

.mdl-color--purple-900 {
    background-color: #4a148c !important
}

.mdl-color-text--purple-A100 {
    color: #ea80fc !important
}

.mdl-color--purple-A100 {
    background-color: #ea80fc !important
}

.mdl-color-text--purple-A200 {
    color: #e040fb !important
}

.mdl-color--purple-A200 {
    background-color: #e040fb !important
}

.mdl-color-text--purple-A400 {
    color: #d500f9 !important
}

.mdl-color--purple-A400 {
    background-color: #d500f9 !important
}

.mdl-color-text--purple-A700 {
    color: #a0f !important
}

.mdl-color--purple-A700 {
    background-color: #a0f !important
}

.mdl-color-text--deep-purple {
    color: #673ab7 !important
}

.mdl-color--deep-purple {
    background-color: #673ab7 !important
}

.mdl-color-text--deep-purple-50 {
    color: #ede7f6 !important
}

.mdl-color--deep-purple-50 {
    background-color: #ede7f6 !important
}

.mdl-color-text--deep-purple-100 {
    color: #d1c4e9 !important
}

.mdl-color--deep-purple-100 {
    background-color: #d1c4e9 !important
}

.mdl-color-text--deep-purple-200 {
    color: #b39ddb !important
}

.mdl-color--deep-purple-200 {
    background-color: #b39ddb !important
}

.mdl-color-text--deep-purple-300 {
    color: #9575cd !important
}

.mdl-color--deep-purple-300 {
    background-color: #9575cd !important
}

.mdl-color-text--deep-purple-400 {
    color: #7e57c2 !important
}

.mdl-color--deep-purple-400 {
    background-color: #7e57c2 !important
}

.mdl-color-text--deep-purple-500 {
    color: #673ab7 !important
}

.mdl-color--deep-purple-500 {
    background-color: #673ab7 !important
}

.mdl-color-text--deep-purple-600 {
    color: #5e35b1 !important
}

.mdl-color--deep-purple-600 {
    background-color: #5e35b1 !important
}

.mdl-color-text--deep-purple-700 {
    color: #512da8 !important
}

.mdl-color--deep-purple-700 {
    background-color: #512da8 !important
}

.mdl-color-text--deep-purple-800 {
    color: #4527a0 !important
}

.mdl-color--deep-purple-800 {
    background-color: #4527a0 !important
}

.mdl-color-text--deep-purple-900 {
    color: #311b92 !important
}

.mdl-color--deep-purple-900 {
    background-color: #311b92 !important
}

.mdl-color-text--deep-purple-A100 {
    color: #b388ff !important
}

.mdl-color--deep-purple-A100 {
    background-color: #b388ff !important
}

.mdl-color-text--deep-purple-A200 {
    color: #7c4dff !important
}

.mdl-color--deep-purple-A200 {
    background-color: #7c4dff !important
}

.mdl-color-text--deep-purple-A400 {
    color: #651fff !important
}

.mdl-color--deep-purple-A400 {
    background-color: #651fff !important
}

.mdl-color-text--deep-purple-A700 {
    color: #6200ea !important
}

.mdl-color--deep-purple-A700 {
    background-color: #6200ea !important
}

.mdl-color-text--indigo {
    color: #3f51b5 !important
}

.mdl-color--indigo {
    background-color: #3f51b5 !important
}

.mdl-color-text--indigo-50 {
    color: #e8eaf6 !important
}

.mdl-color--indigo-50 {
    background-color: #e8eaf6 !important
}

.mdl-color-text--indigo-100 {
    color: #c5cae9 !important
}

.mdl-color--indigo-100 {
    background-color: #c5cae9 !important
}

.mdl-color-text--indigo-200 {
    color: #9fa8da !important
}

.mdl-color--indigo-200 {
    background-color: #9fa8da !important
}

.mdl-color-text--indigo-300 {
    color: #7986cb !important
}

.mdl-color--indigo-300 {
    background-color: #7986cb !important
}

.mdl-color-text--indigo-400 {
    color: #5c6bc0 !important
}

.mdl-color--indigo-400 {
    background-color: #5c6bc0 !important
}

.mdl-color-text--indigo-500 {
    color: #3f51b5 !important
}

.mdl-color--indigo-500 {
    background-color: #3f51b5 !important
}

.mdl-color-text--indigo-600 {
    color: #3949ab !important
}

.mdl-color--indigo-600 {
    background-color: #3949ab !important
}

.mdl-color-text--indigo-700 {
    color: #303f9f !important
}

.mdl-color--indigo-700 {
    background-color: #303f9f !important
}

.mdl-color-text--indigo-800 {
    color: #283593 !important
}

.mdl-color--indigo-800 {
    background-color: #283593 !important
}

.mdl-color-text--indigo-900 {
    color: #1a237e !important
}

.mdl-color--indigo-900 {
    background-color: #1a237e !important
}

.mdl-color-text--indigo-A100 {
    color: #8c9eff !important
}

.mdl-color--indigo-A100 {
    background-color: #8c9eff !important
}

.mdl-color-text--indigo-A200 {
    color: #536dfe !important
}

.mdl-color--indigo-A200 {
    background-color: #536dfe !important
}

.mdl-color-text--indigo-A400 {
    color: #3d5afe !important
}

.mdl-color--indigo-A400 {
    background-color: #3d5afe !important
}

.mdl-color-text--indigo-A700 {
    color: #304ffe !important
}

.mdl-color--indigo-A700 {
    background-color: #304ffe !important
}

.mdl-color-text--blue {
    color: #2196f3 !important
}

.mdl-color--blue {
    background-color: #2196f3 !important
}

.mdl-color-text--blue-50 {
    color: #e3f2fd !important
}

.mdl-color--blue-50 {
    background-color: #e3f2fd !important
}

.mdl-color-text--blue-100 {
    color: #bbdefb !important
}

.mdl-color--blue-100 {
    background-color: #bbdefb !important
}

.mdl-color-text--blue-200 {
    color: #90caf9 !important
}

.mdl-color--blue-200 {
    background-color: #90caf9 !important
}

.mdl-color-text--blue-300 {
    color: #64b5f6 !important
}

.mdl-color--blue-300 {
    background-color: #64b5f6 !important
}

.mdl-color-text--blue-400 {
    color: #42a5f5 !important
}

.mdl-color--blue-400 {
    background-color: #42a5f5 !important
}

.mdl-color-text--blue-500 {
    color: #2196f3 !important
}

.mdl-color--blue-500 {
    background-color: #2196f3 !important
}

.mdl-color-text--blue-600 {
    color: #1e88e5 !important
}

.mdl-color--blue-600 {
    background-color: #1e88e5 !important
}

.mdl-color-text--blue-700 {
    color: #1976d2 !important
}

.mdl-color--blue-700 {
    background-color: #1976d2 !important
}

.mdl-color-text--blue-800 {
    color: #1565c0 !important
}

.mdl-color--blue-800 {
    background-color: #1565c0 !important
}

.mdl-color-text--blue-900 {
    color: #0d47a1 !important
}

.mdl-color--blue-900 {
    background-color: #0d47a1 !important
}

.mdl-color-text--blue-A100 {
    color: #82b1ff !important
}

.mdl-color--blue-A100 {
    background-color: #82b1ff !important
}

.mdl-color-text--blue-A200 {
    color: #448aff !important
}

.mdl-color--blue-A200 {
    background-color: #448aff !important
}

.mdl-color-text--blue-A400 {
    color: #2979ff !important
}

.mdl-color--blue-A400 {
    background-color: #2979ff !important
}

.mdl-color-text--blue-A700 {
    color: #2962ff !important
}

.mdl-color--blue-A700 {
    background-color: #2962ff !important
}

.mdl-color-text--light-blue {
    color: #03a9f4 !important
}

.mdl-color--light-blue {
    background-color: #03a9f4 !important
}

.mdl-color-text--light-blue-50 {
    color: #e1f5fe !important
}

.mdl-color--light-blue-50 {
    background-color: #e1f5fe !important
}

.mdl-color-text--light-blue-100 {
    color: #b3e5fc !important
}

.mdl-color--light-blue-100 {
    background-color: #b3e5fc !important
}

.mdl-color-text--light-blue-200 {
    color: #81d4fa !important
}

.mdl-color--light-blue-200 {
    background-color: #81d4fa !important
}

.mdl-color-text--light-blue-300 {
    color: #4fc3f7 !important
}

.mdl-color--light-blue-300 {
    background-color: #4fc3f7 !important
}

.mdl-color-text--light-blue-400 {
    color: #29b6f6 !important
}

.mdl-color--light-blue-400 {
    background-color: #29b6f6 !important
}

.mdl-color-text--light-blue-500 {
    color: #03a9f4 !important
}

.mdl-color--light-blue-500 {
    background-color: #03a9f4 !important
}

.mdl-color-text--light-blue-600 {
    color: #039be5 !important
}

.mdl-color--light-blue-600 {
    background-color: #039be5 !important
}

.mdl-color-text--light-blue-700 {
    color: #0288d1 !important
}

.mdl-color--light-blue-700 {
    background-color: #0288d1 !important
}

.mdl-color-text--light-blue-800 {
    color: #0277bd !important
}

.mdl-color--light-blue-800 {
    background-color: #0277bd !important
}

.mdl-color-text--light-blue-900 {
    color: #01579b !important
}

.mdl-color--light-blue-900 {
    background-color: #01579b !important
}

.mdl-color-text--light-blue-A100 {
    color: #80d8ff !important
}

.mdl-color--light-blue-A100 {
    background-color: #80d8ff !important
}

.mdl-color-text--light-blue-A200 {
    color: #40c4ff !important
}

.mdl-color--light-blue-A200 {
    background-color: #40c4ff !important
}

.mdl-color-text--light-blue-A400 {
    color: #00b0ff !important
}

.mdl-color--light-blue-A400 {
    background-color: #00b0ff !important
}

.mdl-color-text--light-blue-A700 {
    color: #0091ea !important
}

.mdl-color--light-blue-A700 {
    background-color: #0091ea !important
}

.mdl-color-text--cyan {
    color: #00bcd4 !important
}

.mdl-color--cyan {
    background-color: #00bcd4 !important
}

.mdl-color-text--cyan-50 {
    color: #e0f7fa !important
}

.mdl-color--cyan-50 {
    background-color: #e0f7fa !important
}

.mdl-color-text--cyan-100 {
    color: #b2ebf2 !important
}

.mdl-color--cyan-100 {
    background-color: #b2ebf2 !important
}

.mdl-color-text--cyan-200 {
    color: #80deea !important
}

.mdl-color--cyan-200 {
    background-color: #80deea !important
}

.mdl-color-text--cyan-300 {
    color: #4dd0e1 !important
}

.mdl-color--cyan-300 {
    background-color: #4dd0e1 !important
}

.mdl-color-text--cyan-400 {
    color: #26c6da !important
}

.mdl-color--cyan-400 {
    background-color: #26c6da !important
}

.mdl-color-text--cyan-500 {
    color: #00bcd4 !important
}

.mdl-color--cyan-500 {
    background-color: #00bcd4 !important
}

.mdl-color-text--cyan-600 {
    color: #00acc1 !important
}

.mdl-color--cyan-600 {
    background-color: #00acc1 !important
}

.mdl-color-text--cyan-700 {
    color: #0097a7 !important
}

.mdl-color--cyan-700 {
    background-color: #0097a7 !important
}

.mdl-color-text--cyan-800 {
    color: #00838f !important
}

.mdl-color--cyan-800 {
    background-color: #00838f !important
}

.mdl-color-text--cyan-900 {
    color: #006064 !important
}

.mdl-color--cyan-900 {
    background-color: #006064 !important
}

.mdl-color-text--cyan-A100 {
    color: #84ffff !important
}

.mdl-color--cyan-A100 {
    background-color: #84ffff !important
}

.mdl-color-text--cyan-A200 {
    color: #18ffff !important
}

.mdl-color--cyan-A200 {
    background-color: #18ffff !important
}

.mdl-color-text--cyan-A400 {
    color: #00e5ff !important
}

.mdl-color--cyan-A400 {
    background-color: #00e5ff !important
}

.mdl-color-text--cyan-A700 {
    color: #00b8d4 !important
}

.mdl-color--cyan-A700 {
    background-color: #00b8d4 !important
}

.mdl-color-text--teal {
    color: #009688 !important
}

.mdl-color--teal {
    background-color: #009688 !important
}

.mdl-color-text--teal-50 {
    color: #e0f2f1 !important
}

.mdl-color--teal-50 {
    background-color: #e0f2f1 !important
}

.mdl-color-text--teal-100 {
    color: #b2dfdb !important
}

.mdl-color--teal-100 {
    background-color: #b2dfdb !important
}

.mdl-color-text--teal-200 {
    color: #80cbc4 !important
}

.mdl-color--teal-200 {
    background-color: #80cbc4 !important
}

.mdl-color-text--teal-300 {
    color: #4db6ac !important
}

.mdl-color--teal-300 {
    background-color: #4db6ac !important
}

.mdl-color-text--teal-400 {
    color: #26a69a !important
}

.mdl-color--teal-400 {
    background-color: #26a69a !important
}

.mdl-color-text--teal-500 {
    color: #009688 !important
}

.mdl-color--teal-500 {
    background-color: #009688 !important
}

.mdl-color-text--teal-600 {
    color: #00897b !important
}

.mdl-color--teal-600 {
    background-color: #00897b !important
}

.mdl-color-text--teal-700 {
    color: #00796b !important
}

.mdl-color--teal-700 {
    background-color: #00796b !important
}

.mdl-color-text--teal-800 {
    color: #00695c !important
}

.mdl-color--teal-800 {
    background-color: #00695c !important
}

.mdl-color-text--teal-900 {
    color: #004d40 !important
}

.mdl-color--teal-900 {
    background-color: #004d40 !important
}

.mdl-color-text--teal-A100 {
    color: #a7ffeb !important
}

.mdl-color--teal-A100 {
    background-color: #a7ffeb !important
}

.mdl-color-text--teal-A200 {
    color: #64ffda !important
}

.mdl-color--teal-A200 {
    background-color: #64ffda !important
}

.mdl-color-text--teal-A400 {
    color: #1de9b6 !important
}

.mdl-color--teal-A400 {
    background-color: #1de9b6 !important
}

.mdl-color-text--teal-A700 {
    color: #00bfa5 !important
}

.mdl-color--teal-A700 {
    background-color: #00bfa5 !important
}

.mdl-color-text--green {
    color: #4caf50 !important
}

.mdl-color--green {
    background-color: #4caf50 !important
}

.mdl-color-text--green-50 {
    color: #e8f5e9 !important
}

.mdl-color--green-50 {
    background-color: #e8f5e9 !important
}

.mdl-color-text--green-100 {
    color: #c8e6c9 !important
}

.mdl-color--green-100 {
    background-color: #c8e6c9 !important
}

.mdl-color-text--green-200 {
    color: #a5d6a7 !important
}

.mdl-color--green-200 {
    background-color: #a5d6a7 !important
}

.mdl-color-text--green-300 {
    color: #81c784 !important
}

.mdl-color--green-300 {
    background-color: #81c784 !important
}

.mdl-color-text--green-400 {
    color: #66bb6a !important
}

.mdl-color--green-400 {
    background-color: #66bb6a !important
}

.mdl-color-text--green-500 {
    color: #4caf50 !important
}

.mdl-color--green-500 {
    background-color: #4caf50 !important
}

.mdl-color-text--green-600 {
    color: #43a047 !important
}

.mdl-color--green-600 {
    background-color: #43a047 !important
}

.mdl-color-text--green-700 {
    color: #388e3c !important
}

.mdl-color--green-700 {
    background-color: #388e3c !important
}

.mdl-color-text--green-800 {
    color: #2e7d32 !important
}

.mdl-color--green-800 {
    background-color: #2e7d32 !important
}

.mdl-color-text--green-900 {
    color: #1b5e20 !important
}

.mdl-color--green-900 {
    background-color: #1b5e20 !important
}

.mdl-color-text--green-A100 {
    color: #b9f6ca !important
}

.mdl-color--green-A100 {
    background-color: #b9f6ca !important
}

.mdl-color-text--green-A200 {
    color: #69f0ae !important
}

.mdl-color--green-A200 {
    background-color: #69f0ae !important
}

.mdl-color-text--green-A400 {
    color: #00e676 !important
}

.mdl-color--green-A400 {
    background-color: #00e676 !important
}

.mdl-color-text--green-A700 {
    color: #00c853 !important
}

.mdl-color--green-A700 {
    background-color: #00c853 !important
}

.mdl-color-text--light-green {
    color: #8bc34a !important
}

.mdl-color--light-green {
    background-color: #8bc34a !important
}

.mdl-color-text--light-green-50 {
    color: #f1f8e9 !important
}

.mdl-color--light-green-50 {
    background-color: #f1f8e9 !important
}

.mdl-color-text--light-green-100 {
    color: #dcedc8 !important
}

.mdl-color--light-green-100 {
    background-color: #dcedc8 !important
}

.mdl-color-text--light-green-200 {
    color: #c5e1a5 !important
}

.mdl-color--light-green-200 {
    background-color: #c5e1a5 !important
}

.mdl-color-text--light-green-300 {
    color: #aed581 !important
}

.mdl-color--light-green-300 {
    background-color: #aed581 !important
}

.mdl-color-text--light-green-400 {
    color: #9ccc65 !important
}

.mdl-color--light-green-400 {
    background-color: #9ccc65 !important
}

.mdl-color-text--light-green-500 {
    color: #8bc34a !important
}

.mdl-color--light-green-500 {
    background-color: #8bc34a !important
}

.mdl-color-text--light-green-600 {
    color: #7cb342 !important
}

.mdl-color--light-green-600 {
    background-color: #7cb342 !important
}

.mdl-color-text--light-green-700 {
    color: #689f38 !important
}

.mdl-color--light-green-700 {
    background-color: #689f38 !important
}

.mdl-color-text--light-green-800 {
    color: #558b2f !important
}

.mdl-color--light-green-800 {
    background-color: #558b2f !important
}

.mdl-color-text--light-green-900 {
    color: #33691e !important
}

.mdl-color--light-green-900 {
    background-color: #33691e !important
}

.mdl-color-text--light-green-A100 {
    color: #ccff90 !important
}

.mdl-color--light-green-A100 {
    background-color: #ccff90 !important
}

.mdl-color-text--light-green-A200 {
    color: #b2ff59 !important
}

.mdl-color--light-green-A200 {
    background-color: #b2ff59 !important
}

.mdl-color-text--light-green-A400 {
    color: #76ff03 !important
}

.mdl-color--light-green-A400 {
    background-color: #76ff03 !important
}

.mdl-color-text--light-green-A700 {
    color: #64dd17 !important
}

.mdl-color--light-green-A700 {
    background-color: #64dd17 !important
}

.mdl-color-text--lime {
    color: #cddc39 !important
}

.mdl-color--lime {
    background-color: #cddc39 !important
}

.mdl-color-text--lime-50 {
    color: #f9fbe7 !important
}

.mdl-color--lime-50 {
    background-color: #f9fbe7 !important
}

.mdl-color-text--lime-100 {
    color: #f0f4c3 !important
}

.mdl-color--lime-100 {
    background-color: #f0f4c3 !important
}

.mdl-color-text--lime-200 {
    color: #e6ee9c !important
}

.mdl-color--lime-200 {
    background-color: #e6ee9c !important
}

.mdl-color-text--lime-300 {
    color: #dce775 !important
}

.mdl-color--lime-300 {
    background-color: #dce775 !important
}

.mdl-color-text--lime-400 {
    color: #d4e157 !important
}

.mdl-color--lime-400 {
    background-color: #d4e157 !important
}

.mdl-color-text--lime-500 {
    color: #cddc39 !important
}

.mdl-color--lime-500 {
    background-color: #cddc39 !important
}

.mdl-color-text--lime-600 {
    color: #c0ca33 !important
}

.mdl-color--lime-600 {
    background-color: #c0ca33 !important
}

.mdl-color-text--lime-700 {
    color: #afb42b !important
}

.mdl-color--lime-700 {
    background-color: #afb42b !important
}

.mdl-color-text--lime-800 {
    color: #9e9d24 !important
}

.mdl-color--lime-800 {
    background-color: #9e9d24 !important
}

.mdl-color-text--lime-900 {
    color: #827717 !important
}

.mdl-color--lime-900 {
    background-color: #827717 !important
}

.mdl-color-text--lime-A100 {
    color: #f4ff81 !important
}

.mdl-color--lime-A100 {
    background-color: #f4ff81 !important
}

.mdl-color-text--lime-A200 {
    color: #eeff41 !important
}

.mdl-color--lime-A200 {
    background-color: #eeff41 !important
}

.mdl-color-text--lime-A400 {
    color: #c6ff00 !important
}

.mdl-color--lime-A400 {
    background-color: #c6ff00 !important
}

.mdl-color-text--lime-A700 {
    color: #aeea00 !important
}

.mdl-color--lime-A700 {
    background-color: #aeea00 !important
}

.mdl-color-text--yellow {
    color: #ffeb3b !important
}

.mdl-color--yellow {
    background-color: #ffeb3b !important
}

.mdl-color-text--yellow-50 {
    color: #fffde7 !important
}

.mdl-color--yellow-50 {
    background-color: #fffde7 !important
}

.mdl-color-text--yellow-100 {
    color: #fff9c4 !important
}

.mdl-color--yellow-100 {
    background-color: #fff9c4 !important
}

.mdl-color-text--yellow-200 {
    color: #fff59d !important
}

.mdl-color--yellow-200 {
    background-color: #fff59d !important
}

.mdl-color-text--yellow-300 {
    color: #fff176 !important
}

.mdl-color--yellow-300 {
    background-color: #fff176 !important
}

.mdl-color-text--yellow-400 {
    color: #ffee58 !important
}

.mdl-color--yellow-400 {
    background-color: #ffee58 !important
}

.mdl-color-text--yellow-500 {
    color: #ffeb3b !important
}

.mdl-color--yellow-500 {
    background-color: #ffeb3b !important
}

.mdl-color-text--yellow-600 {
    color: #fdd835 !important
}

.mdl-color--yellow-600 {
    background-color: #fdd835 !important
}

.mdl-color-text--yellow-700 {
    color: #fbc02d !important
}

.mdl-color--yellow-700 {
    background-color: #fbc02d !important
}

.mdl-color-text--yellow-800 {
    color: #f9a825 !important
}

.mdl-color--yellow-800 {
    background-color: #f9a825 !important
}

.mdl-color-text--yellow-900 {
    color: #f57f17 !important
}

.mdl-color--yellow-900 {
    background-color: #f57f17 !important
}

.mdl-color-text--yellow-A100 {
    color: #ffff8d !important
}

.mdl-color--yellow-A100 {
    background-color: #ffff8d !important
}

.mdl-color-text--yellow-A200 {
    color: #ff0 !important
}

.mdl-color--yellow-A200 {
    background-color: #ff0 !important
}

.mdl-color-text--yellow-A400 {
    color: #ffea00 !important
}

.mdl-color--yellow-A400 {
    background-color: #ffea00 !important
}

.mdl-color-text--yellow-A700 {
    color: #ffd600 !important
}

.mdl-color--yellow-A700 {
    background-color: #ffd600 !important
}

.mdl-color-text--amber {
    color: #ffc107 !important
}

.mdl-color--amber {
    background-color: #ffc107 !important
}

.mdl-color-text--amber-50 {
    color: #fff8e1 !important
}

.mdl-color--amber-50 {
    background-color: #fff8e1 !important
}

.mdl-color-text--amber-100 {
    color: #ffecb3 !important
}

.mdl-color--amber-100 {
    background-color: #ffecb3 !important
}

.mdl-color-text--amber-200 {
    color: #ffe082 !important
}

.mdl-color--amber-200 {
    background-color: #ffe082 !important
}

.mdl-color-text--amber-300 {
    color: #ffd54f !important
}

.mdl-color--amber-300 {
    background-color: #ffd54f !important
}

.mdl-color-text--amber-400 {
    color: #ffca28 !important
}

.mdl-color--amber-400 {
    background-color: #ffca28 !important
}

.mdl-color-text--amber-500 {
    color: #ffc107 !important
}

.mdl-color--amber-500 {
    background-color: #ffc107 !important
}

.mdl-color-text--amber-600 {
    color: #ffb300 !important
}

.mdl-color--amber-600 {
    background-color: #ffb300 !important
}

.mdl-color-text--amber-700 {
    color: #ffa000 !important
}

.mdl-color--amber-700 {
    background-color: #ffa000 !important
}

.mdl-color-text--amber-800 {
    color: #ff8f00 !important
}

.mdl-color--amber-800 {
    background-color: #ff8f00 !important
}

.mdl-color-text--amber-900 {
    color: #ff6f00 !important
}

.mdl-color--amber-900 {
    background-color: #ff6f00 !important
}

.mdl-color-text--amber-A100 {
    color: #ffe57f !important
}

.mdl-color--amber-A100 {
    background-color: #ffe57f !important
}

.mdl-color-text--amber-A200 {
    color: #ffd740 !important
}

.mdl-color--amber-A200 {
    background-color: #ffd740 !important
}

.mdl-color-text--amber-A400 {
    color: #ffc400 !important
}

.mdl-color--amber-A400 {
    background-color: #ffc400 !important
}

.mdl-color-text--amber-A700 {
    color: #ffab00 !important
}

.mdl-color--amber-A700 {
    background-color: #ffab00 !important
}

.mdl-color-text--orange {
    color: #ff9800 !important
}

.mdl-color--orange {
    background-color: #ff9800 !important
}

.mdl-color-text--orange-50 {
    color: #fff3e0 !important
}

.mdl-color--orange-50 {
    background-color: #fff3e0 !important
}

.mdl-color-text--orange-100 {
    color: #ffe0b2 !important
}

.mdl-color--orange-100 {
    background-color: #ffe0b2 !important
}

.mdl-color-text--orange-200 {
    color: #ffcc80 !important
}

.mdl-color--orange-200 {
    background-color: #ffcc80 !important
}

.mdl-color-text--orange-300 {
    color: #ffb74d !important
}

.mdl-color--orange-300 {
    background-color: #ffb74d !important
}

.mdl-color-text--orange-400 {
    color: #ffa726 !important
}

.mdl-color--orange-400 {
    background-color: #ffa726 !important
}

.mdl-color-text--orange-500 {
    color: #ff9800 !important
}

.mdl-color--orange-500 {
    background-color: #ff9800 !important
}

.mdl-color-text--orange-600 {
    color: #fb8c00 !important
}

.mdl-color--orange-600 {
    background-color: #fb8c00 !important
}

.mdl-color-text--orange-700 {
    color: #f57c00 !important
}

.mdl-color--orange-700 {
    background-color: #f57c00 !important
}

.mdl-color-text--orange-800 {
    color: #ef6c00 !important
}

.mdl-color--orange-800 {
    background-color: #ef6c00 !important
}

.mdl-color-text--orange-900 {
    color: #e65100 !important
}

.mdl-color--orange-900 {
    background-color: #e65100 !important
}

.mdl-color-text--orange-A100 {
    color: #ffd180 !important
}

.mdl-color--orange-A100 {
    background-color: #ffd180 !important
}

.mdl-color-text--orange-A200 {
    color: #ffab40 !important
}

.mdl-color--orange-A200 {
    background-color: #ffab40 !important
}

.mdl-color-text--orange-A400 {
    color: #ff9100 !important
}

.mdl-color--orange-A400 {
    background-color: #ff9100 !important
}

.mdl-color-text--orange-A700 {
    color: #ff6d00 !important
}

.mdl-color--orange-A700 {
    background-color: #ff6d00 !important
}

.mdl-color-text--deep-orange {
    color: #ff5722 !important
}

.mdl-color--deep-orange {
    background-color: #ff5722 !important
}

.mdl-color-text--deep-orange-50 {
    color: #fbe9e7 !important
}

.mdl-color--deep-orange-50 {
    background-color: #fbe9e7 !important
}

.mdl-color-text--deep-orange-100 {
    color: #ffccbc !important
}

.mdl-color--deep-orange-100 {
    background-color: #ffccbc !important
}

.mdl-color-text--deep-orange-200 {
    color: #ffab91 !important
}

.mdl-color--deep-orange-200 {
    background-color: #ffab91 !important
}

.mdl-color-text--deep-orange-300 {
    color: #ff8a65 !important
}

.mdl-color--deep-orange-300 {
    background-color: #ff8a65 !important
}

.mdl-color-text--deep-orange-400 {
    color: #ff7043 !important
}

.mdl-color--deep-orange-400 {
    background-color: #ff7043 !important
}

.mdl-color-text--deep-orange-500 {
    color: #ff5722 !important
}

.mdl-color--deep-orange-500 {
    background-color: #ff5722 !important
}

.mdl-color-text--deep-orange-600 {
    color: #f4511e !important
}

.mdl-color--deep-orange-600 {
    background-color: #f4511e !important
}

.mdl-color-text--deep-orange-700 {
    color: #e64a19 !important
}

.mdl-color--deep-orange-700 {
    background-color: #e64a19 !important
}

.mdl-color-text--deep-orange-800 {
    color: #d84315 !important
}

.mdl-color--deep-orange-800 {
    background-color: #d84315 !important
}

.mdl-color-text--deep-orange-900 {
    color: #bf360c !important
}

.mdl-color--deep-orange-900 {
    background-color: #bf360c !important
}

.mdl-color-text--deep-orange-A100 {
    color: #ff9e80 !important
}

.mdl-color--deep-orange-A100 {
    background-color: #ff9e80 !important
}

.mdl-color-text--deep-orange-A200 {
    color: #ff6e40 !important
}

.mdl-color--deep-orange-A200 {
    background-color: #ff6e40 !important
}

.mdl-color-text--deep-orange-A400 {
    color: #ff3d00 !important
}

.mdl-color--deep-orange-A400 {
    background-color: #ff3d00 !important
}

.mdl-color-text--deep-orange-A700 {
    color: #dd2c00 !important
}

.mdl-color--deep-orange-A700 {
    background-color: #dd2c00 !important
}

.mdl-color-text--brown {
    color: #795548 !important
}

.mdl-color--brown {
    background-color: #795548 !important
}

.mdl-color-text--brown-50 {
    color: #efebe9 !important
}

.mdl-color--brown-50 {
    background-color: #efebe9 !important
}

.mdl-color-text--brown-100 {
    color: #d7ccc8 !important
}

.mdl-color--brown-100 {
    background-color: #d7ccc8 !important
}

.mdl-color-text--brown-200 {
    color: #bcaaa4 !important
}

.mdl-color--brown-200 {
    background-color: #bcaaa4 !important
}

.mdl-color-text--brown-300 {
    color: #a1887f !important
}

.mdl-color--brown-300 {
    background-color: #a1887f !important
}

.mdl-color-text--brown-400 {
    color: #8d6e63 !important
}

.mdl-color--brown-400 {
    background-color: #8d6e63 !important
}

.mdl-color-text--brown-500 {
    color: #795548 !important
}

.mdl-color--brown-500 {
    background-color: #795548 !important
}

.mdl-color-text--brown-600 {
    color: #6d4c41 !important
}

.mdl-color--brown-600 {
    background-color: #6d4c41 !important
}

.mdl-color-text--brown-700 {
    color: #5d4037 !important
}

.mdl-color--brown-700 {
    background-color: #5d4037 !important
}

.mdl-color-text--brown-800 {
    color: #4e342e !important
}

.mdl-color--brown-800 {
    background-color: #4e342e !important
}

.mdl-color-text--brown-900 {
    color: #3e2723 !important
}

.mdl-color--brown-900 {
    background-color: #3e2723 !important
}

.mdl-color-text--grey {
    color: #9e9e9e !important
}

.mdl-color--grey {
    background-color: #9e9e9e !important
}

.mdl-color-text--grey-50 {
    color: #fafafa !important
}

.mdl-color--grey-50 {
    background-color: #fafafa !important
}

.mdl-color-text--grey-100 {
    color: #f5f5f5 !important
}

.mdl-color--grey-100 {
    background-color: #f5f5f5 !important
}

.mdl-color-text--grey-200 {
    color: #eee !important
}

.mdl-color--grey-200 {
    background-color: #eee !important
}

.mdl-color-text--grey-300 {
    color: #e0e0e0 !important
}

.mdl-color--grey-300 {
    background-color: #e0e0e0 !important
}

.mdl-color-text--grey-400 {
    color: #bdbdbd !important
}

.mdl-color--grey-400 {
    background-color: #bdbdbd !important
}

.mdl-color-text--grey-500 {
    color: #9e9e9e !important
}

.mdl-color--grey-500 {
    background-color: #9e9e9e !important
}

.mdl-color-text--grey-600 {
    color: #757575 !important
}

.mdl-color--grey-600 {
    background-color: #757575 !important
}

.mdl-color-text--grey-700 {
    color: #616161 !important
}

.mdl-color--grey-700 {
    background-color: #616161 !important
}

.mdl-color-text--grey-800 {
    color: #424242 !important
}

.mdl-color--grey-800 {
    background-color: #424242 !important
}

.mdl-color-text--grey-900 {
    color: #212121 !important
}

.mdl-color--grey-900 {
    background-color: #212121 !important
}

.mdl-color-text--blue-grey {
    color: #607d8b !important
}

.mdl-color--blue-grey {
    background-color: #607d8b !important
}

.mdl-color-text--blue-grey-50 {
    color: #eceff1 !important
}

.mdl-color--blue-grey-50 {
    background-color: #eceff1 !important
}

.mdl-color-text--blue-grey-100 {
    color: #cfd8dc !important
}

.mdl-color--blue-grey-100 {
    background-color: #cfd8dc !important
}

.mdl-color-text--blue-grey-200 {
    color: #b0bec5 !important
}

.mdl-color--blue-grey-200 {
    background-color: #b0bec5 !important
}

.mdl-color-text--blue-grey-300 {
    color: #90a4ae !important
}

.mdl-color--blue-grey-300 {
    background-color: #90a4ae !important
}

.mdl-color-text--blue-grey-400 {
    color: #78909c !important
}

.mdl-color--blue-grey-400 {
    background-color: #78909c !important
}

.mdl-color-text--blue-grey-500 {
    color: #607d8b !important
}

.mdl-color--blue-grey-500 {
    background-color: #607d8b !important
}

.mdl-color-text--blue-grey-600 {
    color: #546e7a !important
}

.mdl-color--blue-grey-600 {
    background-color: #546e7a !important
}

.mdl-color-text--blue-grey-700 {
    color: #455a64 !important
}

.mdl-color--blue-grey-700 {
    background-color: #455a64 !important
}

.mdl-color-text--blue-grey-800 {
    color: #37474f !important
}

.mdl-color--blue-grey-800 {
    background-color: #37474f !important
}

.mdl-color-text--blue-grey-900 {
    color: #263238 !important
}

.mdl-color--blue-grey-900 {
    background-color: #263238 !important
}

.mdl-color--black {
    background-color: #000 !important
}

.mdl-color-text--black {
    color: #000 !important
}

.mdl-color--white {
    background-color: #fff !important
}

.mdl-color-text--white {
    color: #fff !important
}

.mdl-color--primary {
    background-color: rgb(255,87,34)!important
}

.mdl-color--primary-contrast {
    background-color: rgb(255,255,255)!important
}

.mdl-color--primary-dark {
    background-color: rgb(230,74,25)!important
}

.mdl-color--accent {
    background-color: rgb(255,64,129)!important
}

.mdl-color--accent-contrast {
    background-color: rgb(255,255,255)!important
}

.mdl-color-text--primary {
    color: rgb(255,87,34)!important
}

.mdl-color-text--primary-contrast {
    color: rgb(255,255,255)!important
}

.mdl-color-text--primary-dark {
    color: rgb(230,74,25)!important
}

.mdl-color-text--accent {
    color: rgb(255,64,129)!important
}

.mdl-color-text--accent-contrast {
    color: rgb(255,255,255)!important
}

.mdl-ripple {
    background: #000;
    border-radius: 50%;
    height: 50px;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    -webkit-transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    width: 50px;
    overflow: hidden
}

.mdl-ripple.is-animating {
    -webkit-transition: -webkit-transform .3s cubic-bezier(0,0,.2,1),width .3s cubic-bezier(0,0,.2,1),height .3s cubic-bezier(0,0,.2,1),opacity .6s cubic-bezier(0,0,.2,1);
    transition: transform .3s cubic-bezier(0,0,.2,1),width .3s cubic-bezier(0,0,.2,1),height .3s cubic-bezier(0,0,.2,1),opacity .6s cubic-bezier(0,0,.2,1)
}

.mdl-ripple.is-visible {
    opacity: .3
}

.mdl-animation--default,.mdl-animation--fast-out-slow-in {
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.mdl-animation--linear-out-slow-in {
    -webkit-transition-timing-function: cubic-bezier(0,0,.2,1);
    transition-timing-function: cubic-bezier(0,0,.2,1)
}

.mdl-animation--fast-out-linear-in {
    -webkit-transition-timing-function: cubic-bezier(.4,0,1,1);
    transition-timing-function: cubic-bezier(.4,0,1,1)
}

.mdl-badge {
    position: relative;
    white-space: nowrap;
    margin-right: 24px
}

.mdl-badge:not([data-badge]) {
    margin-right: auto
}

.mdl-badge[data-badge]:after {
    content: attr(data-badge);
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    position: absolute;
    top: -11px;
    right: -24px;
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-weight: 600;
    font-size: 12px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgb(255,64,129);
    color: rgb(255,255,255)
}

.mdl-button .mdl-badge[data-badge]:after {
    top: -10px;
    right: -5px
}

.mdl-badge.mdl-badge--no-background[data-badge]:after {
    color: rgb(255,64,129);
    background: rgb(255,255,255);
    box-shadow: 0 0 1px gray
}

.mdl-button {
    background: 0 0;
    border: none;
    border-radius: 2px;
    color: #000;
    position: relative;
    height: 36px;
    min-width: 64px;
    padding: 0 16px;
    display: inline-block;
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0;
    overflow: hidden;
    will-change: box-shadow,transform;
    -webkit-transition: box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);
    transition: box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);
    outline: none;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    line-height: 36px;
    vertical-align: middle
}

.mdl-button::-moz-focus-inner {
    border: 0
}

.mdl-button:hover {
    background-color: rgba(158,158,158,.2)
}

.mdl-button:focus:not(:active) {
    background-color: rgba(0,0,0,.12)
}

.mdl-button:active {
    background-color: rgba(158,158,158,.4)
}

.mdl-button.mdl-button--colored {
    color: rgb(255,87,34)
}

.mdl-button.mdl-button--colored:focus:not(:active) {
    background-color: rgba(0,0,0,.12)
}

input.mdl-button[type=&quot;submit&quot;] {
    -webkit-appearance: none
}

.mdl-button--raised {
    background: rgba(158,158,158,.2);
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)
}

.mdl-button--raised:active {
    box-shadow: 0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);
    background-color: rgba(158,158,158,.4)
}

.mdl-button--raised:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);
    background-color: rgba(158,158,158,.4)
}

.mdl-button--raised.mdl-button--colored {
    background: rgb(255,87,34);
    color: rgb(255,255,255)
}

.mdl-button--raised.mdl-button--colored:hover {
    background-color: rgb(255,87,34)
}

.mdl-button--raised.mdl-button--colored:active {
    background-color: rgb(255,87,34)
}

.mdl-button--raised.mdl-button--colored:focus:not(:active) {
    background-color: rgb(255,87,34)
}

.mdl-button--raised.mdl-button--colored .mdl-ripple {
    background: rgb(255,255,255)
}

.mdl-button--fab {
    border-radius: 50%;
    font-size: 24px;
    height: 56px;
    margin: auto;
    min-width: 56px;
    width: 56px;
    padding: 0;
    overflow: hidden;
    background: rgba(158,158,158,.2);
    box-shadow: 0 1px 1.5px 0 rgba(0,0,0,.12),0 1px 1px 0 rgba(0,0,0,.24);
    position: relative;
    line-height: normal
}

.mdl-button--fab .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-12px,-12px);
    -ms-transform: translate(-12px,-12px);
    transform: translate(-12px,-12px);
    line-height: 24px;
    width: 24px
}

.mdl-button--fab.mdl-button--mini-fab {
    height: 40px;
    min-width: 40px;
    width: 40px
}

.mdl-button--fab .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle,#fff,#000)
}

.mdl-button--fab:active {
    box-shadow: 0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);
    background-color: rgba(158,158,158,.4)
}

.mdl-button--fab:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);
    background-color: rgba(158,158,158,.4)
}

.mdl-button--fab.mdl-button--colored {
    background: rgb(255,64,129);
    color: rgb(255,255,255)
}

.mdl-button--fab.mdl-button--colored:hover {
    background-color: rgb(255,64,129)
}

.mdl-button--fab.mdl-button--colored:focus:not(:active) {
    background-color: rgb(255,64,129)
}

.mdl-button--fab.mdl-button--colored:active {
    background-color: rgb(255,64,129)
}

.mdl-button--fab.mdl-button--colored .mdl-ripple {
    background: rgb(255,255,255)
}

.mdl-button--icon {
    border-radius: 50%;
    font-size: 24px;
    height: 32px;
    margin-left: 0;
    margin-right: 0;
    min-width: 32px;
    width: 32px;
    padding: 0;
    overflow: hidden;
    color: inherit;
    line-height: normal
}

.mdl-button--icon .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-12px,-12px);
    -ms-transform: translate(-12px,-12px);
    transform: translate(-12px,-12px);
    line-height: 24px;
    width: 24px
}

.mdl-button--icon.mdl-button--mini-icon {
    height: 24px;
    min-width: 24px;
    width: 24px
}

.mdl-button--icon.mdl-button--mini-icon .material-icons {
    top: 0;
    left: 0
}

.mdl-button--icon .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle,#fff,#000)
}

.mdl-button__ripple-container {
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0;
    overflow: hidden
}

.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,.mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {
    background-color: transparent
}

.mdl-button--primary.mdl-button--primary {
    color: rgb(255,87,34)
}

.mdl-button--primary.mdl-button--primary .mdl-ripple {
    background: rgb(255,255,255)
}

.mdl-button--primary.mdl-button--primary.mdl-button--raised,.mdl-button--primary.mdl-button--primary.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(255,87,34)
}

.mdl-button--accent.mdl-button--accent {
    color: rgb(255,64,129)
}

.mdl-button--accent.mdl-button--accent .mdl-ripple {
    background: rgb(255,255,255)
}

.mdl-button--accent.mdl-button--accent.mdl-button--raised,.mdl-button--accent.mdl-button--accent.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(255,64,129)
}

.mdl-button[disabled][disabled],.mdl-button.mdl-button--disabled.mdl-button--disabled {
    color: rgba(0,0,0,.26);
    cursor: default;
    background-color: transparent
}

.mdl-button--fab[disabled][disabled],.mdl-button--fab.mdl-button--disabled.mdl-button--disabled,.mdl-button--raised[disabled][disabled],.mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
    background-color: rgba(0,0,0,.12);
    color: rgba(0,0,0,.26);
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)
}

.mdl-button--colored[disabled][disabled],.mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
    color: rgba(0,0,0,.26)
}

.mdl-button .material-icons {
    vertical-align: middle
}

.mdl-card {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    font-size: 16px;
    font-weight: 400;
    min-height: 200px;
    overflow: hidden;
    width: 330px;
    z-index: 1;
    position: relative;
    background: #fff;
    border-radius: 2px;
    box-sizing: border-box
}

.mdl-card__media {
    background-color: rgb(255,64,129);
    background-repeat: repeat;
    background-position: 50% 50%;
    background-size: cover;
    background-origin: padding-box;
    background-attachment: scroll;
    box-sizing: border-box
}

.mdl-card__title {
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    color: #000;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: stretch;
    -webkit-justify-content: stretch;
    -ms-flex-pack: stretch;
    justify-content: stretch;
    line-height: normal;
    padding: 16px;
    -webkit-perspective-origin: 165px 56px;
    perspective-origin: 165px 56px;
    -webkit-transform-origin: 165px 56px;
    -ms-transform-origin: 165px 56px;
    transform-origin: 165px 56px;
    box-sizing: border-box
}

.mdl-card__title.mdl-card--border {
    border-bottom: 1px solid rgba(0,0,0,.1)
}

.mdl-card__title-text {
    -webkit-align-self: flex-end;
    -ms-flex-item-align: end;
    align-self: flex-end;
    color: inherit;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    font-size: 24px;
    font-weight: 300;
    line-height: normal;
    overflow: hidden;
    -webkit-transform-origin: 149px 48px;
    -ms-transform-origin: 149px 48px;
    transform-origin: 149px 48px;
    margin: 0
}

.mdl-card__subtitle-text {
    font-size: 14px;
    color: rgba(0,0,0,.54);
    margin: 0
}

.mdl-card__supporting-text {
    color: rgba(0,0,0,.54);
    font-size: 13px;
    line-height: 18px;
    overflow: hidden;
    padding: 16px;
    width: 90%
}

.mdl-card__actions {
    font-size: 16px;
    line-height: normal;
    width: 100%;
    background-color: transparent;
    padding: 8px;
    box-sizing: border-box
}

.mdl-card__actions.mdl-card--border {
    border-top: 1px solid rgba(0,0,0,.1)
}

.mdl-card--expand {
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1
}

.mdl-card__menu {
    position: absolute;
    right: 16px;
    top: 16px
}

.mdl-checkbox {
    position: relative;
    z-index: 1;
    vertical-align: middle;
    display: inline-block;
    box-sizing: border-box;
    width: 100%;
    height: 24px;
    margin: 0;
    padding: 0
}

.mdl-checkbox.is-upgraded {
    padding-left: 24px
}

.mdl-checkbox__input {
    line-height: 24px
}

.mdl-checkbox.is-upgraded .mdl-checkbox__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none
}

.mdl-checkbox__box-outline {
    position: absolute;
    top: 3px;
    left: 0;
    display: inline-block;
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0;
    cursor: pointer;
    overflow: hidden;
    border: 2px solid rgba(0,0,0,.54);
    border-radius: 2px;
    z-index: 2
}

.mdl-checkbox.is-checked .mdl-checkbox__box-outline {
    border: 2px solid rgb(255,87,34)
}

.mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
    border: 2px solid rgba(0,0,0,.26);
    cursor: auto
}

.mdl-checkbox__focus-helper {
    position: absolute;
    top: 3px;
    left: 0;
    display: inline-block;
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: transparent
}

.mdl-checkbox.is-focused .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0 8px rgba(0,0,0,.1);
    background-color: rgba(0,0,0,.1)
}

.mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0 8px rgba(255,87,34,.26);
    background-color: rgba(255,87,34,.26)
}

.mdl-checkbox__tick-outline {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    -webkit-mask: url(&quot;&quot;);
    mask: url(&quot;&quot;);
    background: 0 0;
    -webkit-transition-duration: .28s;
    transition-duration: .28s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    -webkit-transition-property: background;
    transition-property: background
}

.mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
    background: rgb(255,87,34)url(&quot;&quot;)
}

.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
    background: rgba(0,0,0,.26)url(&quot;&quot;)
}

.mdl-checkbox__label {
    position: relative;
    cursor: pointer;
    font-size: 16px;
    line-height: 24px;
    margin: 0
}

.mdl-checkbox.is-disabled .mdl-checkbox__label {
    color: rgba(0,0,0,.26);
    cursor: auto
}

.mdl-checkbox__ripple-container {
    position: absolute;
    z-index: 2;
    top: -6px;
    left: -10px;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(circle,#fff,#000)
}

.mdl-checkbox__ripple-container .mdl-ripple {
    background: rgb(255,87,34)
}

.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {
    cursor: auto
}

.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
    background: 0 0
}

.mdl-data-table {
    position: relative;
    border: 1px solid rgba(0,0,0,.12);
    border-collapse: collapse;
    white-space: nowrap;
    font-size: 13px;
    background-color: #fff
}

.mdl-data-table thead {
    padding-bottom: 3px
}

.mdl-data-table thead .mdl-data-table__select {
    margin-top: 0
}

.mdl-data-table tbody tr {
    position: relative;
    height: 48px;
    -webkit-transition-duration: .28s;
    transition-duration: .28s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    -webkit-transition-property: background-color;
    transition-property: background-color
}

.mdl-data-table tbody tr.is-selected {
    background-color: #e0e0e0
}

.mdl-data-table tbody tr:hover {
    background-color: #eee
}

.mdl-data-table td {
    text-align: right
}

.mdl-data-table th {
    padding: 0 18px;
    text-align: right
}

.mdl-data-table td:first-of-type,.mdl-data-table th:first-of-type {
    padding-left: 24px
}

.mdl-data-table td:last-of-type,.mdl-data-table th:last-of-type {
    padding-right: 24px
}

.mdl-data-table td {
    position: relative;
    vertical-align: top;
    height: 48px;
    border-top: 1px solid rgba(0,0,0,.12);
    border-bottom: 1px solid rgba(0,0,0,.12);
    padding: 12px 18px 0;
    box-sizing: border-box
}

.mdl-data-table td .mdl-data-table__select {
    vertical-align: top;
    position: absolute;
    left: 24px
}

.mdl-data-table th {
    position: relative;
    vertical-align: bottom;
    text-overflow: ellipsis;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: 0;
    height: 48px;
    font-size: 12px;
    color: rgba(0,0,0,.54);
    padding-bottom: 8px;
    box-sizing: border-box
}

.mdl-data-table th .mdl-data-table__select {
    position: absolute;
    bottom: 8px;
    left: 24px
}

.mdl-data-table__select {
    width: 16px
}

.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {
    text-align: left
}

.mdl-mega-footer {
    padding: 16px 40px;
    color: #9e9e9e;
    background-color: #424242
}

.mdl-mega-footer--top-section:after,.mdl-mega-footer--middle-section:after,.mdl-mega-footer--bottom-section:after,.mdl-mega-footer__top-section:after,.mdl-mega-footer__middle-section:after,.mdl-mega-footer__bottom-section:after {
    content: '';
    display: block;
    clear: both
}

.mdl-mega-footer--left-section,.mdl-mega-footer__left-section,.mdl-mega-footer--right-section,.mdl-mega-footer__right-section {
    margin-bottom: 16px
}

.mdl-mega-footer--right-section a,.mdl-mega-footer__right-section a {
    display: block;
    margin-bottom: 16px;
    color: inherit;
    text-decoration: none
}

@media screen and (min-width:760px) {
    .mdl-mega-footer--left-section,.mdl-mega-footer__left-section {
        float: left
    }

    .mdl-mega-footer--right-section,.mdl-mega-footer__right-section {
        float: right
    }

    .mdl-mega-footer--right-section a,.mdl-mega-footer__right-section a {
        display: inline-block;
        margin-left: 16px;
        line-height: 36px;
        vertical-align: middle
    }
}

.mdl-mega-footer--social-btn,.mdl-mega-footer__social-btn {
    width: 36px;
    height: 36px;
    padding: 0;
    margin: 0;
    background-color: #9e9e9e;
    border: none
}

.mdl-mega-footer--drop-down-section,.mdl-mega-footer__drop-down-section {
    display: block;
    position: relative
}

@media screen and (min-width:760px) {
    .mdl-mega-footer--drop-down-section,.mdl-mega-footer__drop-down-section {
        width: 33%
    }

    .mdl-mega-footer--drop-down-section:nth-child(1),.mdl-mega-footer--drop-down-section:nth-child(2),.mdl-mega-footer__drop-down-section:nth-child(1),.mdl-mega-footer__drop-down-section:nth-child(2) {
        float: left
    }

    .mdl-mega-footer--drop-down-section:nth-child(3),.mdl-mega-footer__drop-down-section:nth-child(3) {
        float: right
    }

    .mdl-mega-footer--drop-down-section:nth-child(3):after,.mdl-mega-footer__drop-down-section:nth-child(3):after {
        clear: right
    }

    .mdl-mega-footer--drop-down-section:nth-child(4),.mdl-mega-footer__drop-down-section:nth-child(4) {
        clear: right;
        float: right
    }

    .mdl-mega-footer--middle-section:after,.mdl-mega-footer__middle-section:after {
        content: '';
        display: block;
        clear: both
    }

    .mdl-mega-footer--bottom-section,.mdl-mega-footer__bottom-section {
        padding-top: 0
    }
}

@media screen and (min-width:1024px) {
    .mdl-mega-footer--drop-down-section,.mdl-mega-footer--drop-down-section:nth-child(3),.mdl-mega-footer--drop-down-section:nth-child(4),.mdl-mega-footer__drop-down-section,.mdl-mega-footer__drop-down-section:nth-child(3),.mdl-mega-footer__drop-down-section:nth-child(4) {
        width: 24%;
        float: left
    }
}

.mdl-mega-footer--heading-checkbox,.mdl-mega-footer__heading-checkbox {
    position: absolute;
    width: 100%;
    height: 55.8px;
    padding: 32px;
    margin: -16px 0 0;
    cursor: pointer;
    z-index: 1;
    opacity: 0
}

.mdl-mega-footer--heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer__heading:after {
    font-family: 'Material Icons';
    content: '\E5CE'
}

.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer--link-list,.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer__link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list {
    display: none
}

.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading:after {
    font-family: 'Material Icons';
    content: '\E5CF'
}

.mdl-mega-footer--heading,.mdl-mega-footer__heading {
    position: relative;
    width: 100%;
    padding-right: 39.8px;
    margin-bottom: 16px;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 23.8px;
    font-weight: 500;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    color: #e0e0e0
}

.mdl-mega-footer--heading:after,.mdl-mega-footer__heading:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    width: 23.8px;
    height: 23.8px;
    background-size: cover
}

.mdl-mega-footer--link-list,.mdl-mega-footer__link-list {
    list-style: none;
    padding: 0;
    margin: 0 0 32px
}

.mdl-mega-footer--link-list:after,.mdl-mega-footer__link-list:after {
    clear: both;
    display: block;
    content: ''
}

.mdl-mega-footer--link-list li,.mdl-mega-footer__link-list li {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 20px
}

.mdl-mega-footer--link-list a,.mdl-mega-footer__link-list a {
    color: inherit;
    text-decoration: none;
    white-space: nowrap
}

@media screen and (min-width:760px) {
    .mdl-mega-footer--heading-checkbox,.mdl-mega-footer__heading-checkbox {
        display: none
    }

    .mdl-mega-footer--heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer__heading:after {
        background-image: none
    }

    .mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer--link-list,.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer__link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list {
        display: block
    }

    .mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading:after {
        content: ''
    }
}

.mdl-mega-footer--bottom-section,.mdl-mega-footer__bottom-section {
    padding-top: 16px;
    margin-bottom: 16px
}

.mdl-logo {
    margin-bottom: 16px;
    color: #fff
}

.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {
    float: left;
    margin-bottom: 0;
    margin-right: 16px
}

@media screen and (min-width:760px) {
    .mdl-logo {
        float: left;
        margin-bottom: 0;
        margin-right: 16px
    }
}

.mdl-mini-footer {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 32px 16px;
    color: #9e9e9e;
    background-color: #424242
}

.mdl-mini-footer:after {
    content: '';
    display: block
}

.mdl-mini-footer .mdl-logo {
    line-height: 36px
}

.mdl-mini-footer--link-list,.mdl-mini-footer__link-list {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row nowrap;
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap;
    list-style: none;
    margin: 0;
    padding: 0
}

.mdl-mini-footer--link-list li,.mdl-mini-footer__link-list li {
    margin-bottom: 0;
    margin-right: 16px
}

@media screen and (min-width:760px) {
    .mdl-mini-footer--link-list li,.mdl-mini-footer__link-list li {
        line-height: 36px
    }
}

.mdl-mini-footer--link-list a,.mdl-mini-footer__link-list a {
    color: inherit;
    text-decoration: none;
    white-space: nowrap
}

.mdl-mini-footer--left-section,.mdl-mini-footer__left-section {
    display: inline-block;
    -webkit-box-ordinal-group: 1;
    -webkit-order: 0;
    -ms-flex-order: 0;
    order: 0
}

.mdl-mini-footer--right-section,.mdl-mini-footer__right-section {
    display: inline-block;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1
}

.mdl-mini-footer--social-btn,.mdl-mini-footer__social-btn {
    width: 36px;
    height: 36px;
    padding: 0;
    margin: 0;
    background-color: #9e9e9e;
    border: none
}

.mdl-icon-toggle {
    position: relative;
    z-index: 1;
    vertical-align: middle;
    display: inline-block;
    height: 32px;
    margin: 0;
    padding: 0
}

.mdl-icon-toggle__input {
    line-height: 32px
}

.mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none
}

.mdl-icon-toggle__label {
    display: inline-block;
    position: relative;
    cursor: pointer;
    height: 32px;
    width: 32px;
    min-width: 32px;
    color: #616161;
    border-radius: 50%;
    padding: 0;
    margin-left: 0;
    margin-right: 0;
    text-align: center;
    background-color: transparent;
    will-change: background-color;
    -webkit-transition: background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);
    transition: background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1)
}

.mdl-icon-toggle__label.material-icons {
    line-height: 32px;
    font-size: 24px
}

.mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
    color: rgb(255,87,34)
}

.mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
    color: rgba(0,0,0,.26);
    cursor: auto;
    -webkit-transition: none;
    transition: none
}

.mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
    background-color: rgba(0,0,0,.12)
}

.mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
    background-color: rgba(255,87,34,.26)
}

.mdl-icon-toggle__ripple-container {
    position: absolute;
    z-index: 2;
    top: -2px;
    left: -2px;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(circle,#fff,#000)
}

.mdl-icon-toggle__ripple-container .mdl-ripple {
    background: #616161
}

.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {
    cursor: auto
}

.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: 0 0
}

.mdl-menu__container {
    display: block;
    margin: 0;
    padding: 0;
    border: none;
    position: absolute;
    overflow: visible;
    height: 0;
    width: 0;
    visibility: hidden;
    z-index: -1
}

.mdl-menu__container.is-visible,.mdl-menu__container.is-animating {
    z-index: 999;
    visibility: visible
}

.mdl-menu__outline {
    display: block;
    background: #fff;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 2px;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    opacity: 0;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
    will-change: transform;
    -webkit-transition: -webkit-transform .3s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);
    transition: transform .3s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);
    z-index: -1
}

.mdl-menu__container.is-visible .mdl-menu__outline {
    opacity: 1;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    z-index: 999
}

.mdl-menu__outline.mdl-menu--bottom-right {
    -webkit-transform-origin: 100% 0;
    -ms-transform-origin: 100% 0;
    transform-origin: 100% 0
}

.mdl-menu__outline.mdl-menu--top-left {
    -webkit-transform-origin: 0 100%;
    -ms-transform-origin: 0 100%;
    transform-origin: 0 100%
}

.mdl-menu__outline.mdl-menu--top-right {
    -webkit-transform-origin: 100% 100%;
    -ms-transform-origin: 100% 100%;
    transform-origin: 100% 100%
}

.mdl-menu {
    position: absolute;
    list-style: none;
    top: 0;
    left: 0;
    height: auto;
    width: auto;
    min-width: 124px;
    padding: 8px 0;
    margin: 0;
    opacity: 0;
    clip: rect(0 0 0 0);
    z-index: -1
}

.mdl-menu__container.is-visible .mdl-menu {
    opacity: 1;
    z-index: 999
}

.mdl-menu.is-animating {
    -webkit-transition: opacity .2s cubic-bezier(.4,0,.2,1),clip .3s cubic-bezier(.4,0,.2,1);
    transition: opacity .2s cubic-bezier(.4,0,.2,1),clip .3s cubic-bezier(.4,0,.2,1)
}

.mdl-menu.mdl-menu--bottom-right {
    left: auto;
    right: 0
}

.mdl-menu.mdl-menu--top-left {
    top: auto;
    bottom: 0
}

.mdl-menu.mdl-menu--top-right {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0
}

.mdl-menu.mdl-menu--unaligned {
    top: auto;
    left: auto
}

.mdl-menu__item {
    display: block;
    border: none;
    color: rgba(0,0,0,.87);
    background-color: transparent;
    text-align: left;
    margin: 0;
    padding: 0 16px;
    outline-color: #bdbdbd;
    position: relative;
    overflow: hidden;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
    text-decoration: none;
    cursor: pointer;
    height: 48px;
    line-height: 48px;
    white-space: nowrap;
    opacity: 0;
    -webkit-transition: opacity .2s cubic-bezier(.4,0,.2,1);
    transition: opacity .2s cubic-bezier(.4,0,.2,1);
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.mdl-menu__container.is-visible .mdl-menu__item {
    opacity: 1
}

.mdl-menu__item::-moz-focus-inner {
    border: 0
}

.mdl-menu__item[disabled] {
    color: #bdbdbd;
    background-color: transparent;
    cursor: auto
}

.mdl-menu__item[disabled]:hover {
    background-color: transparent
}

.mdl-menu__item[disabled]:focus {
    background-color: transparent
}

.mdl-menu__item[disabled] .mdl-ripple {
    background: 0 0
}

.mdl-menu__item:hover {
    background-color: #eee
}

.mdl-menu__item:focus {
    outline: none;
    background-color: #eee
}

.mdl-menu__item:active {
    background-color: #e0e0e0
}

.mdl-menu__item--ripple-container {
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0;
    overflow: hidden
}

.mdl-progress {
    display: block;
    position: relative;
    height: 4px;
    width: 500px
}

.mdl-progress>.bar {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0%;
    -webkit-transition: width .2s cubic-bezier(.4,0,.2,1);
    transition: width .2s cubic-bezier(.4,0,.2,1)
}

.mdl-progress>.progressbar {
    background-color: rgb(255,87,34);
    z-index: 1;
    left: 0
}

.mdl-progress>.bufferbar {
    background-image: -webkit-linear-gradient(left,rgba(255,255,255,.7),rgba(255,255,255,.7)),-webkit-linear-gradient(left,rgb(255,87,34),rgb(255,87,34));
    background-image: linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7)),linear-gradient(to right,rgb(255,87,34),rgb(255,87,34));
    z-index: 0;
    left: 0
}

.mdl-progress>.auxbar {
    right: 0
}

@supports (-webkit-appearance:none) {
    .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate)>.auxbar {
        background-image: -webkit-linear-gradient(left,rgba(255,255,255,.7),rgba(255,255,255,.7)),-webkit-linear-gradient(left,rgb(255,87,34),rgb(255,87,34));
        background-image: linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7)),linear-gradient(to right,rgb(255,87,34),rgb(255,87,34));
        -webkit-mask: url(&quot;&quot;);
        mask: url(&quot;&quot;)
    }
}

.mdl-progress:not(.mdl-progress__indeterminate)>.auxbar {
    background-image: -webkit-linear-gradient(left,rgba(255,255,255,.9),rgba(255,255,255,.9)),-webkit-linear-gradient(left,rgb(255,87,34),rgb(255,87,34));
    background-image: linear-gradient(to right,rgba(255,255,255,.9),rgba(255,255,255,.9)),linear-gradient(to right,rgb(255,87,34),rgb(255,87,34))
}

.mdl-progress.mdl-progress__indeterminate>.bar1 {
    -webkit-animation-name: indeterminate1;
    animation-name: indeterminate1
}

.mdl-progress.mdl-progress__indeterminate>.bar1,.mdl-progress.mdl-progress__indeterminate>.bar3 {
    background-color: rgb(255,87,34);
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear
}

.mdl-progress.mdl-progress__indeterminate>.bar3 {
    background-image: none;
    -webkit-animation-name: indeterminate2;
    animation-name: indeterminate2
}

@-webkit-keyframes indeterminate1 {
    0% {
        left: 0%;
        width: 0%
    }

    50% {
        left: 25%;
        width: 75%
    }

    75% {
        left: 100%;
        width: 0%
    }
}

@keyframes indeterminate1 {
    0% {
        left: 0%;
        width: 0%
    }

    50% {
        left: 25%;
        width: 75%
    }

    75% {
        left: 100%;
        width: 0%
    }
}

@-webkit-keyframes indeterminate2 {
    0%,50% {
        left: 0%;
        width: 0%
    }

    75% {
        left: 0%;
        width: 25%
    }

    100% {
        left: 100%;
        width: 0%
    }
}

@keyframes indeterminate2 {
    0%,50% {
        left: 0%;
        width: 0%
    }

    75% {
        left: 0%;
        width: 25%
    }

    100% {
        left: 100%;
        width: 0%
    }
}

.mdl-navigation {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    box-sizing: border-box
}

.mdl-navigation__link {
    color: #424242;
    text-decoration: none;
    font-weight: 500;
    font-size: 13px;
    margin: 0
}

.mdl-layout {
    width: 100%;
    height: 100%;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
    -webkit-overflow-scrolling: touch
}

.mdl-layout.is-small-screen .mdl-layout--large-screen-only {
    display: none
}

.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {
    display: none
}

.mdl-layout__container {
    position: absolute;
    width: 100%;
    height: 100%
}

.mdl-layout__title,.mdl-layout-title {
    display: block;
    position: relative;
    font-family: &quot;Roboto&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;
    font-size: 20px;
    line-height: 1;
    letter-spacing: .02em;
    font-weight: 400;
    box-sizing: border-box
}

.mdl-layout-spacer {
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1
}

.mdl-layout__drawer {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    width: 240px;
    height: 100%;
    max-height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
    box-sizing: border-box;
    border-right: 1px solid #e0e0e0;
    background: #fafafa;
    -webkit-transform: translateX(-250px);
    -ms-transform: translateX(-250px);
    transform: translateX(-250px);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    will-change: transform;
    -webkit-transition-duration: .2s;
    transition-duration: .2s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    -webkit-transition-property: -webkit-transform;
    transition-property: transform;
    color: #424242;
    overflow: visible;
    overflow-y: auto;
    z-index: 5
}

.mdl-layout__drawer.is-visible {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0)
}

.mdl-layout__drawer.is-visible~.mdl-layout__content.mdl-layout__content {
    overflow: hidden
}

.mdl-layout__drawer>* {
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0
}

.mdl-layout__drawer>.mdl-layout__title,.mdl-layout__drawer>.mdl-layout-title {
    line-height: 64px;
    padding-left: 40px
}

@media screen and (max-width:1024px) {
    .mdl-layout__drawer>.mdl-layout__title,.mdl-layout__drawer>.mdl-layout-title {
        line-height: 56px;
        padding-left: 16px
    }
}

.mdl-layout__drawer .mdl-navigation {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    padding-top: 16px
}

.mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
    display: block;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    padding: 16px 40px;
    margin: 0;
    color: #757575
}

@media screen and (max-width:1024px) {
    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
        padding: 16px
    }
}

.mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {
    background-color: #e0e0e0
}

.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current {
    background-color: #000;
    color: #e0e0e0
}

@media screen and (min-width:1025px) {
    .mdl-layout--fixed-drawer>.mdl-layout__drawer {
        -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
        transform: translateX(0)
    }
}

.mdl-layout__drawer-button {
    display: block;
    position: absolute;
    height: 48px;
    width: 48px;
    border: 0;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    overflow: hidden;
    text-align: center;
    cursor: pointer;
    font-size: 26px;
    line-height: 50px;
    font-family: Helvetica,Arial,sans-serif;
    margin: 10px 12px;
    top: 0;
    left: 0;
    color: rgb(255,255,255);
    z-index: 4
}

.mdl-layout__header .mdl-layout__drawer-button {
    position: absolute;
    color: rgb(255,255,255);
    background-color: inherit
}

@media screen and (max-width:1024px) {
    .mdl-layout__header .mdl-layout__drawer-button {
        margin: 4px
    }
}

@media screen and (max-width:1024px) {
    .mdl-layout__drawer-button {
        margin: 4px;
        color: rgba(0,0,0,.5)
    }
}

@media screen and (min-width:1025px) {
    .mdl-layout--fixed-drawer>.mdl-layout__drawer-button {
        display: none
    }
}

.mdl-layout__header {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    box-sizing: border-box;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    min-height: 64px;
    max-height: 1000px;
    z-index: 3;
    background-color: rgb(255,87,34);
    color: rgb(255,255,255);
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
    -webkit-transition-duration: .2s;
    transition-duration: .2s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    -webkit-transition-property: max-height,box-shadow;
    transition-property: max-height,box-shadow
}

@media screen and (max-width:1024px) {
    .mdl-layout__header {
        min-height: 56px
    }
}

.mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen)>.mdl-layout__header {
    margin-left: 240px;
    width: calc(100% - 240px)
}

@media screen and (min-width:1025px) {
    .mdl-layout--fixed-drawer>.mdl-layout__header .mdl-layout__header-row {
        padding-left: 40px
    }
}

.mdl-layout__header>.mdl-layout-icon {
    position: absolute;
    left: 40px;
    top: 16px;
    height: 32px;
    width: 32px;
    overflow: hidden;
    z-index: 3;
    display: block
}

@media screen and (max-width:1024px) {
    .mdl-layout__header>.mdl-layout-icon {
        left: 16px;
        top: 12px
    }
}

.mdl-layout.has-drawer .mdl-layout__header>.mdl-layout-icon {
    display: none
}

.mdl-layout__header.is-compact {
    max-height: 64px
}

@media screen and (max-width:1024px) {
    .mdl-layout__header.is-compact {
        max-height: 56px
    }
}

.mdl-layout__header.is-compact.has-tabs {
    height: 112px
}

@media screen and (max-width:1024px) {
    .mdl-layout__header.is-compact.has-tabs {
        min-height: 104px
    }
}

@media screen and (max-width:1024px) {
    .mdl-layout__header {
        display: none
    }

    .mdl-layout--fixed-header>.mdl-layout__header {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex
    }
}

.mdl-layout__header--transparent.mdl-layout__header--transparent {
    background-color: transparent;
    box-shadow: none
}

.mdl-layout__header--seamed,.mdl-layout__header--scroll {
    box-shadow: none
}

.mdl-layout__header--waterfall {
    box-shadow: none;
    overflow: hidden
}

.mdl-layout__header--waterfall.is-casting-shadow {
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)
}

.mdl-layout__header-row {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    box-sizing: border-box;
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    height: 64px;
    margin: 0;
    padding: 0 40px 0 80px
}

@media screen and (max-width:1024px) {
    .mdl-layout__header-row {
        height: 56px;
        padding: 0 16px 0 72px
    }
}

.mdl-layout__header-row>* {
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0
}

.mdl-layout__header--scroll .mdl-layout__header-row {
    width: 100%
}

.mdl-layout__header-row .mdl-navigation {
    margin: 0;
    padding: 0;
    height: 64px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

@media screen and (max-width:1024px) {
    .mdl-layout__header-row .mdl-navigation {
        height: 56px
    }
}

.mdl-layout__header-row .mdl-navigation__link {
    display: block;
    color: rgb(255,255,255);
    line-height: 64px;
    padding: 0 24px
}

@media screen and (max-width:1024px) {
    .mdl-layout__header-row .mdl-navigation__link {
        line-height: 56px;
        padding: 0 16px
    }
}

.mdl-layout__obfuscator {
    background-color: transparent;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 4;
    visibility: hidden;
    -webkit-transition-property: background-color;
    transition-property: background-color;
    -webkit-transition-duration: .2s;
    transition-duration: .2s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.mdl-layout__obfuscator.is-visible {
    background-color: rgba(0,0,0,.5);
    visibility: visible
}

.mdl-layout__content {
    -ms-flex: 0 1 auto;
    display: inline-block;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    z-index: 1;
    -webkit-overflow-scrolling: touch
}

.mdl-layout--fixed-drawer>.mdl-layout__content {
    margin-left: 240px
}

.mdl-layout__container.has-scrolling-header .mdl-layout__content {
    overflow: visible
}

@media screen and (max-width:1024px) {
    .mdl-layout--fixed-drawer>.mdl-layout__content {
        margin-left: 0
    }

    .mdl-layout__container.has-scrolling-header .mdl-layout__content {
        overflow-y: auto;
        overflow-x: hidden
    }
}

.mdl-layout__tab-bar {
    height: 96px;
    margin: 0;
    width: calc(100% - 112px);
    padding: 0 0 0 56px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    background-color: rgb(255,87,34);
    overflow-y: hidden;
    overflow-x: scroll
}

.mdl-layout__tab-bar::-webkit-scrollbar {
    display: none
}

@media screen and (max-width:1024px) {
    .mdl-layout__tab-bar {
        width: calc(100% - 60px);
        padding: 0 0 0 60px
    }
}

.mdl-layout--fixed-tabs .mdl-layout__tab-bar {
    padding: 0;
    overflow: hidden;
    width: 100%
}

.mdl-layout__tab-bar-container {
    position: relative;
    height: 48px;
    width: 100%;
    border: none;
    margin: 0;
    z-index: 2;
    -webkit-box-flex: 0;
    -webkit-flex-grow: 0;
    -ms-flex-positive: 0;
    flex-grow: 0;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    overflow: hidden
}

.mdl-layout__container>.mdl-layout__tab-bar-container {
    position: absolute;
    top: 0;
    left: 0
}

.mdl-layout__tab-bar-button {
    display: inline-block;
    position: absolute;
    top: 0;
    height: 48px;
    width: 56px;
    z-index: 4;
    text-align: center;
    background-color: rgb(255,87,34);
    color: transparent;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

@media screen and (max-width:1024px) {
    .mdl-layout__tab-bar-button {
        display: none;
        width: 60px
    }
}

.mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {
    display: none
}

.mdl-layout__tab-bar-button .material-icons {
    line-height: 48px
}

.mdl-layout__tab-bar-button.is-active {
    color: rgb(255,255,255)
}

.mdl-layout__tab-bar-left-button {
    left: 0
}

.mdl-layout__tab-bar-right-button {
    right: 0
}

.mdl-layout__tab {
    margin: 0;
    border: none;
    padding: 0 24px;
    float: left;
    position: relative;
    display: block;
    -webkit-box-flex: 0;
    -webkit-flex-grow: 0;
    -ms-flex-positive: 0;
    flex-grow: 0;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    text-decoration: none;
    height: 48px;
    line-height: 48px;
    text-align: center;
    font-weight: 500;
    font-size: 14px;
    text-transform: uppercase;
    color: rgba(255,255,255,.6);
    overflow: hidden
}

@media screen and (max-width:1024px) {
    .mdl-layout__tab {
        padding: 0 12px
    }
}

.mdl-layout--fixed-tabs .mdl-layout__tab {
    float: none;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    padding: 0
}

.mdl-layout.is-upgraded .mdl-layout__tab.is-active {
    color: rgb(255,255,255)
}

.mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {
    height: 2px;
    width: 100%;
    display: block;
    content: &quot; &quot;;
    bottom: 0;
    left: 0;
    position: absolute;
    background: rgb(255,64,129);
    -webkit-animation: border-expand .2s cubic-bezier(.4,0,.4,1).01s alternate forwards;
    animation: border-expand .2s cubic-bezier(.4,0,.4,1).01s alternate forwards;
    -webkit-transition: all 1s cubic-bezier(.4,0,1,1);
    transition: all 1s cubic-bezier(.4,0,1,1)
}

.mdl-layout__tab .mdl-layout__tab-ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 1;
    overflow: hidden
}

.mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {
    background-color: rgb(255,255,255)
}

.mdl-layout__tab-panel {
    display: block
}

.mdl-layout.is-upgraded .mdl-layout__tab-panel {
    display: none
}

.mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {
    display: block
}

.mdl-radio {
    position: relative;
    font-size: 16px;
    line-height: 24px;
    display: inline-block;
    box-sizing: border-box;
    margin: 0;
    padding-left: 0
}

.mdl-radio.is-upgraded {
    padding-left: 24px
}

.mdl-radio__button {
    line-height: 24px
}

.mdl-radio.is-upgraded .mdl-radio__button {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none
}

.mdl-radio__outer-circle {
    position: absolute;
    top: 4px;
    left: 0;
    display: inline-block;
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0;
    cursor: pointer;
    border: 2px solid rgba(0,0,0,.54);
    border-radius: 50%;
    z-index: 2
}

.mdl-radio.is-checked .mdl-radio__outer-circle {
    border: 2px solid rgb(255,87,34)
}

.mdl-radio.is-disabled .mdl-radio__outer-circle {
    border: 2px solid rgba(0,0,0,.26);
    cursor: auto
}

.mdl-radio__inner-circle {
    position: absolute;
    z-index: 1;
    margin: 0;
    top: 8px;
    left: 4px;
    box-sizing: border-box;
    width: 8px;
    height: 8px;
    cursor: pointer;
    -webkit-transition-duration: .28s;
    transition-duration: .28s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    -webkit-transition-property: -webkit-transform;
    transition-property: transform;
    -webkit-transform: scale3d(0,0,0);
    transform: scale3d(0,0,0);
    border-radius: 50%;
    background: rgb(255,87,34)
}

.mdl-radio.is-checked .mdl-radio__inner-circle {
    -webkit-transform: scale3d(1,1,1);
    transform: scale3d(1,1,1)
}

.mdl-radio.is-disabled .mdl-radio__inner-circle {
    background: rgba(0,0,0,.26);
    cursor: auto
}

.mdl-radio.is-focused .mdl-radio__inner-circle {
    box-shadow: 0 0 0 10px rgba(0,0,0,.1)
}

.mdl-radio__label {
    cursor: pointer
}

.mdl-radio.is-disabled .mdl-radio__label {
    color: rgba(0,0,0,.26);
    cursor: auto
}

.mdl-radio__ripple-container {
    position: absolute;
    z-index: 2;
    top: -9px;
    left: -13px;
    box-sizing: border-box;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    cursor: pointer;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(circle,#fff,#000)
}

.mdl-radio__ripple-container .mdl-ripple {
    background: rgb(255,87,34)
}

.mdl-radio.is-disabled .mdl-radio__ripple-container {
    cursor: auto
}

.mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
    background: 0 0
}

_:-ms-input-placeholder,:root .mdl-slider.mdl-slider.is-upgraded {
    -ms-appearance: none;
    height: 32px;
    margin: 0
}

.mdl-slider {
    width: calc(100% - 40px);
    margin: 0 20px
}

.mdl-slider.is-upgraded {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 2px;
    background: 0 0;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    outline: 0;
    padding: 0;
    color: rgb(255,87,34);
    -webkit-align-self: center;
    -ms-flex-item-align: center;
    align-self: center;
    z-index: 1;
    cursor: pointer
}

.mdl-slider.is-upgraded::-moz-focus-outer {
    border: 0
}

.mdl-slider.is-upgraded::-ms-tooltip {
    display: none
}

.mdl-slider.is-upgraded::-webkit-slider-runnable-track {
    background: 0 0
}

.mdl-slider.is-upgraded::-moz-range-track {
    background: 0 0;
    border: none
}

.mdl-slider.is-upgraded::-ms-track {
    background: 0 0;
    color: transparent;
    height: 2px;
    width: 100%;
    border: none
}

.mdl-slider.is-upgraded::-ms-fill-lower {
    padding: 0;
    background: linear-gradient(to right,transparent,transparent 16px,rgb(255,87,34)16px,rgb(255,87,34)0)
}

.mdl-slider.is-upgraded::-ms-fill-upper {
    padding: 0;
    background: linear-gradient(to left,transparent,transparent 16px,rgba(0,0,0,.26)16px,rgba(0,0,0,.26)0)
}

.mdl-slider.is-upgraded::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 12px;
    height: 12px;
    box-sizing: border-box;
    border-radius: 50%;
    background: rgb(255,87,34);
    border: none;
    -webkit-transition: -webkit-transform .18s cubic-bezier(.4,0,.2,1),border .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1),background .28s cubic-bezier(.4,0,.2,1);
    transition: transform .18s cubic-bezier(.4,0,.2,1),border .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1),background .28s cubic-bezier(.4,0,.2,1)
}

.mdl-slider.is-upgraded::-moz-range-thumb {
    -moz-appearance: none;
    width: 12px;
    height: 12px;
    box-sizing: border-box;
    border-radius: 50%;
    background-image: none;
    background: rgb(255,87,34);
    border: none
}

.mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
    box-shadow: 0 0 0 10px rgba(255,87,34,.26)
}

.mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
    box-shadow: 0 0 0 10px rgba(255,87,34,.26)
}

.mdl-slider.is-upgraded:active::-webkit-slider-thumb {
    background-image: none;
    background: rgb(255,87,34);
    -webkit-transform: scale(1.5);
    transform: scale(1.5)
}

.mdl-slider.is-upgraded:active::-moz-range-thumb {
    background-image: none;
    background: rgb(255,87,34);
    transform: scale(1.5)
}

.mdl-slider.is-upgraded::-ms-thumb {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    background: rgb(255,87,34);
    -ms-transform: scale(.375);
    transform: scale(.375);
    transition: transform .18s cubic-bezier(.4,0,.2,1),background .28s cubic-bezier(.4,0,.2,1)
}

.mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
    background: radial-gradient(circle closest-side,rgb(255,87,34)0%,rgb(255,87,34)37.5%,rgba(255,87,34,.26)37.5%,rgba(255,87,34,.26)100%);
    -ms-transform: scale(1);
    transform: scale(1)
}

.mdl-slider.is-upgraded:active::-ms-thumb {
    background: rgb(255,87,34);
    -ms-transform: scale(.5625);
    transform: scale(.5625)
}

.mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
    border: 2px solid rgba(0,0,0,.26);
    background: 0 0
}

.mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
    border: 2px solid rgba(0,0,0,.26);
    background: 0 0
}

.mdl-slider.is-upgraded.is-lowest-value+.mdl-slider__background-flex>.mdl-slider__background-upper {
    left: 6px
}

.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
    box-shadow: 0 0 0 10px rgba(0,0,0,.12);
    background: rgba(0,0,0,.12)
}

.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
    box-shadow: 0 0 0 10px rgba(0,0,0,.12);
    background: rgba(0,0,0,.12)
}

.mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
    border: 1.6px solid rgba(0,0,0,.26);
    -webkit-transform: scale(1.5);
    transform: scale(1.5)
}

.mdl-slider.is-upgraded.is-lowest-value:active+.mdl-slider__background-flex>.mdl-slider__background-upper {
    left: 9px
}

.mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
    border: 1.5px solid rgba(0,0,0,.26);
    transform: scale(1.5)
}

.mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
    background: radial-gradient(circle closest-side,transparent 0%,transparent 66.67%,rgba(0,0,0,.26)66.67%,rgba(0,0,0,.26)100%)
}

.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
    background: radial-gradient(circle closest-side,rgba(0,0,0,.12)0%,rgba(0,0,0,.12)25%,rgba(0,0,0,.26)25%,rgba(0,0,0,.26)37.5%,rgba(0,0,0,.12)37.5%,rgba(0,0,0,.12)100%);
    -ms-transform: scale(1);
    transform: scale(1)
}

.mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
    -ms-transform: scale(.5625);
    transform: scale(.5625);
    background: radial-gradient(circle closest-side,transparent 0%,transparent 77.78%,rgba(0,0,0,.26)77.78%,rgba(0,0,0,.26)100%)
}

.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
    background: 0 0
}

.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {
    margin-left: 6px
}

.mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {
    margin-left: 9px
}

.mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,.mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
    -webkit-transform: scale(.667);
    transform: scale(.667);
    background: rgba(0,0,0,.26)
}

.mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,.mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdl-slider.is-upgraded:disabled::-moz-range-thumb {
    transform: scale(.667);
    background: rgba(0,0,0,.26)
}

.mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-lower {
    background-color: rgba(0,0,0,.26);
    left: -6px
}

.mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-upper {
    left: 6px
}

.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
    border: 3px solid rgba(0,0,0,.26);
    background: 0 0;
    -webkit-transform: scale(.667);
    transform: scale(.667)
}

.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
    border: 3px solid rgba(0,0,0,.26);
    background: 0 0;
    transform: scale(.667)
}

.mdl-slider.is-upgraded.is-lowest-value:disabled:active+.mdl-slider__background-flex>.mdl-slider__background-upper {
    left: 6px
}

.mdl-slider.is-upgraded:disabled:focus::-ms-thumb,.mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdl-slider.is-upgraded:disabled::-ms-thumb {
    -ms-transform: scale(.25);
    transform: scale(.25);
    background: rgba(0,0,0,.26)
}

.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
    -ms-transform: scale(.25);
    transform: scale(.25);
    background: radial-gradient(circle closest-side,transparent 0%,transparent 50%,rgba(0,0,0,.26)50%,rgba(0,0,0,.26)100%)
}

.mdl-slider.is-upgraded:disabled::-ms-fill-lower {
    margin-right: 6px;
    background: linear-gradient(to right,transparent,transparent 25px,rgba(0,0,0,.26)25px,rgba(0,0,0,.26)0)
}

.mdl-slider.is-upgraded:disabled::-ms-fill-upper {
    margin-left: 6px
}

.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {
    margin-left: 6px
}

.mdl-slider__ie-container {
    height: 18px;
    overflow: visible;
    border: none;
    margin: none;
    padding: none
}

.mdl-slider__container {
    height: 18px;
    position: relative;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row
}

.mdl-slider__container,.mdl-slider__background-flex {
    background: 0 0;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex
}

.mdl-slider__background-flex {
    position: absolute;
    height: 2px;
    width: calc(100% - 52px);
    top: 50%;
    left: 0;
    margin: 0 26px;
    overflow: hidden;
    border: 0;
    padding: 0;
    -webkit-transform: translate(0,-1px);
    -ms-transform: translate(0,-1px);
    transform: translate(0,-1px)
}

.mdl-slider__background-lower {
    background: rgb(255,87,34)
}

.mdl-slider__background-lower,.mdl-slider__background-upper {
    -webkit-box-flex: 0;
    -webkit-flex: 0;
    -ms-flex: 0;
    flex: 0;
    position: relative;
    border: 0;
    padding: 0
}

.mdl-slider__background-upper {
    background: rgba(0,0,0,.26);
    -webkit-transition: left .18s cubic-bezier(.4,0,.2,1);
    transition: left .18s cubic-bezier(.4,0,.2,1)
}

.mdl-spinner {
    display: inline-block;
    position: relative;
    width: 28px;
    height: 28px
}

.mdl-spinner:not(.is-upgraded).is-active:after {
    content: &quot;Loading...&quot;
}

.mdl-spinner.is-upgraded.is-active {
    -webkit-animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite;
    animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite
}

@-webkit-keyframes mdl-spinner__container-rotate {
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

@keyframes mdl-spinner__container-rotate {
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

.mdl-spinner__layer {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0
}

.mdl-spinner__layer-1 {
    border-color: #42a5f5
}

.mdl-spinner--single-color .mdl-spinner__layer-1 {
    border-color: rgb(255,87,34)
}

.mdl-spinner.is-active .mdl-spinner__layer-1 {
    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both;
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both
}

.mdl-spinner__layer-2 {
    border-color: #f44336
}

.mdl-spinner--single-color .mdl-spinner__layer-2 {
    border-color: rgb(255,87,34)
}

.mdl-spinner.is-active .mdl-spinner__layer-2 {
    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both;
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both
}

.mdl-spinner__layer-3 {
    border-color: #fdd835
}

.mdl-spinner--single-color .mdl-spinner__layer-3 {
    border-color: rgb(255,87,34)
}

.mdl-spinner.is-active .mdl-spinner__layer-3 {
    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both;
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both
}

.mdl-spinner__layer-4 {
    border-color: #4caf50
}

.mdl-spinner--single-color .mdl-spinner__layer-4 {
    border-color: rgb(255,87,34)
}

.mdl-spinner.is-active .mdl-spinner__layer-4 {
    -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both;
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1)infinite both,mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1)infinite both
}

@-webkit-keyframes mdl-spinner__fill-unfill-rotate {
    12.5% {
        -webkit-transform: rotate(135deg);
        transform: rotate(135deg)
    }

    25% {
        -webkit-transform: rotate(270deg);
        transform: rotate(270deg)
    }

    37.5% {
        -webkit-transform: rotate(405deg);
        transform: rotate(405deg)
    }

    50% {
        -webkit-transform: rotate(540deg);
        transform: rotate(540deg)
    }

    62.5% {
        -webkit-transform: rotate(675deg);
        transform: rotate(675deg)
    }

    75% {
        -webkit-transform: rotate(810deg);
        transform: rotate(810deg)
    }

    87.5% {
        -webkit-transform: rotate(945deg);
        transform: rotate(945deg)
    }

    to {
        -webkit-transform: rotate(1080deg);
        transform: rotate(1080deg)
    }
}

@keyframes mdl-spinner__fill-unfill-rotate {
    12.5% {
        -webkit-transform: rotate(135deg);
        transform: rotate(135deg)
    }

    25% {
        -webkit-transform: rotate(270deg);
        transform: rotate(270deg)
    }

    37.5% {
        -webkit-transform: rotate(405deg);
        transform: rotate(405deg)
    }

    50% {
        -webkit-transform: rotate(540deg);
        transform: rotate(540deg)
    }

    62.5% {
        -webkit-transform: rotate(675deg);
        transform: rotate(675deg)
    }

    75% {
        -webkit-transform: rotate(810deg);
        transform: rotate(810deg)
    }

    87.5% {
        -webkit-transform: rotate(945deg);
        transform: rotate(945deg)
    }

    to {
        -webkit-transform: rotate(1080deg);
        transform: rotate(1080deg)
    }
}

@-webkit-keyframes mdl-spinner__layer-1-fade-in-out {
    from,25% {
        opacity: .99
    }

    26%,89% {
        opacity: 0
    }

    90%,100% {
        opacity: .99
    }
}

@keyframes mdl-spinner__layer-1-fade-in-out {
    from,25% {
        opacity: .99
    }

    26%,89% {
        opacity: 0
    }

    90%,100% {
        opacity: .99
    }
}

@-webkit-keyframes mdl-spinner__layer-2-fade-in-out {
    from,15% {
        opacity: 0
    }

    25%,50% {
        opacity: .99
    }

    51% {
        opacity: 0
    }
}

@keyframes mdl-spinner__layer-2-fade-in-out {
    from,15% {
        opacity: 0
    }

    25%,50% {
        opacity: .99
    }

    51% {
        opacity: 0
    }
}

@-webkit-keyframes mdl-spinner__layer-3-fade-in-out {
    from,40% {
        opacity: 0
    }

    50%,75% {
        opacity: .99
    }

    76% {
        opacity: 0
    }
}

@keyframes mdl-spinner__layer-3-fade-in-out {
    from,40% {
        opacity: 0
    }

    50%,75% {
        opacity: .99
    }

    76% {
        opacity: 0
    }
}

@-webkit-keyframes mdl-spinner__layer-4-fade-in-out {
    from,65% {
        opacity: 0
    }

    75%,90% {
        opacity: .99
    }

    100% {
        opacity: 0
    }
}

@keyframes mdl-spinner__layer-4-fade-in-out {
    from,65% {
        opacity: 0
    }

    75%,90% {
        opacity: .99
    }

    100% {
        opacity: 0
    }
}

.mdl-spinner__gap-patch {
    position: absolute;
    box-sizing: border-box;
    top: 0;
    left: 45%;
    width: 10%;
    height: 100%;
    overflow: hidden;
    border-color: inherit
}

.mdl-spinner__gap-patch .mdl-spinner__circle {
    width: 1000%;
    left: -450%
}

.mdl-spinner__circle-clipper {
    display: inline-block;
    position: relative;
    width: 50%;
    height: 100%;
    overflow: hidden;
    border-color: inherit
}

.mdl-spinner__circle-clipper .mdl-spinner__circle {
    width: 200%
}

.mdl-spinner__circle {
    box-sizing: border-box;
    height: 100%;
    border-width: 3px;
    border-style: solid;
    border-color: inherit;
    border-bottom-color: transparent!important;
    border-radius: 50%;
    -webkit-animation: none;
    animation: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0
}

.mdl-spinner__left .mdl-spinner__circle {
    border-right-color: transparent!important;
    -webkit-transform: rotate(129deg);
    -ms-transform: rotate(129deg);
    transform: rotate(129deg)
}

.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
    -webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(.4,0,.2,1)infinite both;
    animation: mdl-spinner__left-spin 1333ms cubic-bezier(.4,0,.2,1)infinite both
}

.mdl-spinner__right .mdl-spinner__circle {
    left: -100%;
    border-left-color: transparent!important;
    -webkit-transform: rotate(-129deg);
    -ms-transform: rotate(-129deg);
    transform: rotate(-129deg)
}

.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
    -webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(.4,0,.2,1)infinite both;
    animation: mdl-spinner__right-spin 1333ms cubic-bezier(.4,0,.2,1)infinite both
}

@-webkit-keyframes mdl-spinner__left-spin {
    from {
        -webkit-transform: rotate(130deg);
        transform: rotate(130deg)
    }

    50% {
        -webkit-transform: rotate(-5deg);
        transform: rotate(-5deg)
    }

    to {
        -webkit-transform: rotate(130deg);
        transform: rotate(130deg)
    }
}

@keyframes mdl-spinner__left-spin {
    from {
        -webkit-transform: rotate(130deg);
        transform: rotate(130deg)
    }

    50% {
        -webkit-transform: rotate(-5deg);
        transform: rotate(-5deg)
    }

    to {
        -webkit-transform: rotate(130deg);
        transform: rotate(130deg)
    }
}

@-webkit-keyframes mdl-spinner__right-spin {
    from {
        -webkit-transform: rotate(-130deg);
        transform: rotate(-130deg)
    }

    50% {
        -webkit-transform: rotate(5deg);
        transform: rotate(5deg)
    }

    to {
        -webkit-transform: rotate(-130deg);
        transform: rotate(-130deg)
    }
}

@keyframes mdl-spinner__right-spin {
    from {
        -webkit-transform: rotate(-130deg);
        transform: rotate(-130deg)
    }

    50% {
        -webkit-transform: rotate(5deg);
        transform: rotate(5deg)
    }

    to {
        -webkit-transform: rotate(-130deg);
        transform: rotate(-130deg)
    }
}

.mdl-switch {
    position: relative;
    z-index: 1;
    vertical-align: middle;
    display: inline-block;
    box-sizing: border-box;
    width: 100%;
    height: 24px;
    margin: 0;
    padding: 0;
    overflow: visible;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.mdl-switch.is-upgraded {
    padding-left: 28px
}

.mdl-switch__input {
    line-height: 24px
}

.mdl-switch.is-upgraded .mdl-switch__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none
}

.mdl-switch__track {
    background: rgba(0,0,0,.26);
    position: absolute;
    left: 0;
    top: 5px;
    height: 14px;
    width: 36px;
    border-radius: 14px;
    cursor: pointer
}

.mdl-switch.is-checked .mdl-switch__track {
    background: rgba(255,87,34,.5)
}

.mdl-switch.is-disabled .mdl-switch__track {
    background: rgba(0,0,0,.12);
    cursor: auto
}

.mdl-switch__thumb {
    background: #fafafa;
    position: absolute;
    left: 0;
    top: 2px;
    height: 20px;
    width: 20px;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
    -webkit-transition-duration: .28s;
    transition-duration: .28s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    -webkit-transition-property: left;
    transition-property: left
}

.mdl-switch.is-checked .mdl-switch__thumb {
    background: rgb(255,87,34);
    left: 16px;
    box-shadow: 0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)
}

.mdl-switch.is-disabled .mdl-switch__thumb {
    background: #bdbdbd;
    cursor: auto
}

.mdl-switch__focus-helper {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-4px,-4px);
    -ms-transform: translate(-4px,-4px);
    transform: translate(-4px,-4px);
    display: inline-block;
    box-sizing: border-box;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: transparent
}

.mdl-switch.is-focused .mdl-switch__focus-helper {
    box-shadow: 0 0 0 20px rgba(0,0,0,.1);
    background-color: rgba(0,0,0,.1)
}

.mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
    box-shadow: 0 0 0 20px rgba(255,87,34,.26);
    background-color: rgba(255,87,34,.26)
}

.mdl-switch__label {
    position: relative;
    cursor: pointer;
    font-size: 16px;
    line-height: 24px;
    margin: 0;
    left: 24px
}

.mdl-switch.is-disabled .mdl-switch__label {
    color: #bdbdbd;
    cursor: auto
}

.mdl-switch__ripple-container {
    position: absolute;
    z-index: 2;
    top: -12px;
    left: -14px;
    box-sizing: border-box;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    cursor: pointer;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(circle,#fff,#000);
    -webkit-transition-duration: .4s;
    transition-duration: .4s;
    -webkit-transition-timing-function: step-end;
    transition-timing-function: step-end;
    -webkit-transition-property: left;
    transition-property: left
}

.mdl-switch__ripple-container .mdl-ripple {
    background: rgb(255,87,34)
}

.mdl-switch.is-disabled .mdl-switch__ripple-container {
    cursor: auto
}

.mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
    background: 0 0
}

.mdl-switch.is-checked .mdl-switch__ripple-container {
    cursor: auto;
    left: 2px
}

.mdl-tabs {
    display: block;
    width: 100%
}

.mdl-tabs__tab-bar {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-content: space-between;
    -ms-flex-line-pack: justify;
    align-content: space-between;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    height: 48px;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid #e0e0e0
}

.mdl-tabs__tab {
    margin: 0;
    border: none;
    padding: 0 24px;
    float: left;
    position: relative;
    display: block;
    color: red;
    text-decoration: none;
    height: 48px;
    line-height: 48px;
    text-align: center;
    font-weight: 500;
    font-size: 14px;
    text-transform: uppercase;
    color: rgba(0,0,0,.54);
    overflow: hidden
}

.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {
    color: rgba(0,0,0,.87)
}

.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {
    height: 2px;
    width: 100%;
    display: block;
    content: &quot; &quot;;
    bottom: 0;
    left: 0;
    position: absolute;
    background: rgb(255,87,34);
    -webkit-animation: border-expand .2s cubic-bezier(.4,0,.4,1).01s alternate forwards;
    animation: border-expand .2s cubic-bezier(.4,0,.4,1).01s alternate forwards;
    -webkit-transition: all 1s cubic-bezier(.4,0,1,1);
    transition: all 1s cubic-bezier(.4,0,1,1)
}

.mdl-tabs__tab .mdl-tabs__ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 1;
    overflow: hidden
}

.mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {
    background: rgb(255,87,34)
}

.mdl-tabs__panel {
    display: block
}

.mdl-tabs.is-upgraded .mdl-tabs__panel {
    display: none
}

.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {
    display: block
}

@-webkit-keyframes border-expand {
    0% {
        opacity: 0;
        width: 0
    }

    100% {
        opacity: 1;
        width: 100%
    }
}

@keyframes border-expand {
    0% {
        opacity: 0;
        width: 0
    }

    100% {
        opacity: 1;
        width: 100%
    }
}

.mdl-textfield {
    position: relative;
    font-size: 16px;
    display: inline-block;
    box-sizing: border-box;
    width: 300px;
    max-width: 100%;
    margin: 0;
    padding: 20px 0
}

.mdl-textfield .mdl-button {
    position: absolute;
    bottom: 20px
}

.mdl-textfield--align-right {
    text-align: right
}

.mdl-textfield--full-width {
    width: 100%
}

.mdl-textfield--expandable {
    min-width: 32px;
    width: auto;
    min-height: 32px
}

.mdl-textfield__input {
    border: none;
    border-bottom: 1px solid rgba(0,0,0,.12);
    display: block;
    font-size: 16px;
    margin: 0;
    padding: 4px 0;
    width: 100%;
    background: 0 0;
    text-align: left;
    color: inherit
}

.mdl-textfield.is-focused .mdl-textfield__input {
    outline: none
}

.mdl-textfield.is-invalid .mdl-textfield__input {
    border-color: #de3226;
    box-shadow: none
}

.mdl-textfield.is-disabled .mdl-textfield__input {
    background-color: transparent;
    border-bottom: 1px dotted rgba(0,0,0,.12);
    color: rgba(0,0,0,.26)
}

.mdl-textfield textarea.mdl-textfield__input {
    display: block
}

.mdl-textfield__label {
    bottom: 0;
    color: rgba(0,0,0,.26);
    font-size: 16px;
    left: 0;
    right: 0;
    pointer-events: none;
    position: absolute;
    display: block;
    top: 24px;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-align: left
}

.mdl-textfield.is-dirty .mdl-textfield__label {
    visibility: hidden
}

.mdl-textfield--floating-label .mdl-textfield__label {
    -webkit-transition-duration: .2s;
    transition-duration: .2s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
    color: rgba(0,0,0,.26)
}

.mdl-textfield--floating-label.is-focused .mdl-textfield__label,.mdl-textfield--floating-label.is-dirty .mdl-textfield__label {
    color: rgb(255,87,34);
    font-size: 12px;
    top: 4px;
    visibility: visible
}

.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,.mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label {
    top: -16px
}

.mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
    color: #de3226;
    font-size: 12px
}

.mdl-textfield__label:after {
    background-color: rgb(255,87,34);
    bottom: 20px;
    content: '';
    height: 2px;
    left: 45%;
    position: absolute;
    -webkit-transition-duration: .2s;
    transition-duration: .2s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    visibility: hidden;
    width: 10px
}

.mdl-textfield.is-focused .mdl-textfield__label:after {
    left: 0;
    visibility: visible;
    width: 100%
}

.mdl-textfield.is-invalid .mdl-textfield__label:after {
    background-color: #de3226
}

.mdl-textfield__error {
    color: #de3226;
    position: absolute;
    font-size: 12px;
    margin-top: 3px;
    visibility: hidden;
    display: block
}

.mdl-textfield.is-invalid .mdl-textfield__error {
    visibility: visible
}

.mdl-textfield__expandable-holder {
    position: relative;
    margin-left: 32px;
    -webkit-transition-duration: .2s;
    transition-duration: .2s;
    -webkit-transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    display: inline-block;
    max-width: .1px
}

.mdl-textfield.is-focused .mdl-textfield__expandable-holder,.mdl-textfield.is-dirty .mdl-textfield__expandable-holder {
    max-width: 600px
}

.mdl-textfield__expandable-holder .mdl-textfield__label:after {
    bottom: 0
}

.mdl-tooltip {
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    -webkit-transform-origin: top center;
    -ms-transform-origin: top center;
    transform-origin: top center;
    will-change: transform;
    z-index: 999;
    background: rgba(97,97,97,.9);
    border-radius: 2px;
    color: #fff;
    display: inline-block;
    font-size: 10px;
    font-weight: 500;
    line-height: 14px;
    max-width: 170px;
    position: fixed;
    top: -500px;
    left: -500px;
    padding: 8px;
    text-align: center
}

.mdl-tooltip.is-active {
    -webkit-animation: pulse 200ms cubic-bezier(0,0,.2,1)forwards;
    animation: pulse 200ms cubic-bezier(0,0,.2,1)forwards
}

.mdl-tooltip--large {
    line-height: 14px;
    font-size: 14px;
    padding: 16px
}

@-webkit-keyframes pulse {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
        opacity: 0
    }

    50% {
        -webkit-transform: scale(.99);
        transform: scale(.99)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 1;
        visibility: visible
    }
}

@keyframes pulse {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
        opacity: 0
    }

    50% {
        -webkit-transform: scale(.99);
        transform: scale(.99)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 1;
        visibility: visible
    }
}

.mdl-shadow--2dp {
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)
}

.mdl-shadow--3dp {
    box-shadow: 0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)
}

.mdl-shadow--4dp {
    box-shadow: 0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2)
}

.mdl-shadow--6dp {
    box-shadow: 0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)
}

.mdl-shadow--8dp {
    box-shadow: 0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2)
}

.mdl-shadow--16dp {
    box-shadow: 0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)
}

.mdl-grid {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    margin: 0 auto;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
    -ms-flex-align: stretch;
    align-items: stretch
}

.mdl-grid.mdl-grid--no-spacing {
    padding: 0
}

.mdl-cell {
    box-sizing: border-box
}

.mdl-cell--top {
    -webkit-align-self: flex-start;
    -ms-flex-item-align: start;
    align-self: flex-start
}

.mdl-cell--middle {
    -webkit-align-self: center;
    -ms-flex-item-align: center;
    align-self: center
}

.mdl-cell--bottom {
    -webkit-align-self: flex-end;
    -ms-flex-item-align: end;
    align-self: flex-end
}

.mdl-cell--stretch {
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    align-self: stretch
}

.mdl-grid.mdl-grid--no-spacing>.mdl-cell {
    margin: 0
}

@media (max-width:479px) {
    .mdl-grid {
        padding: 8px
    }

    .mdl-cell {
        margin: 8px;
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell {
        width: 100%
    }

    .mdl-cell--hide-phone {
        display: none!important
    }

    .mdl-cell--1-col,.mdl-cell--1-col-phone.mdl-cell--1-col-phone {
        width: calc(25% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-phone.mdl-cell--1-col-phone {
        width: 25%
    }

    .mdl-cell--2-col,.mdl-cell--2-col-phone.mdl-cell--2-col-phone {
        width: calc(50% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-phone.mdl-cell--2-col-phone {
        width: 50%
    }

    .mdl-cell--3-col,.mdl-cell--3-col-phone.mdl-cell--3-col-phone {
        width: calc(75% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-phone.mdl-cell--3-col-phone {
        width: 75%
    }

    .mdl-cell--4-col,.mdl-cell--4-col-phone.mdl-cell--4-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-phone.mdl-cell--4-col-phone {
        width: 100%
    }

    .mdl-cell--5-col,.mdl-cell--5-col-phone.mdl-cell--5-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-phone.mdl-cell--5-col-phone {
        width: 100%
    }

    .mdl-cell--6-col,.mdl-cell--6-col-phone.mdl-cell--6-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-phone.mdl-cell--6-col-phone {
        width: 100%
    }

    .mdl-cell--7-col,.mdl-cell--7-col-phone.mdl-cell--7-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-phone.mdl-cell--7-col-phone {
        width: 100%
    }

    .mdl-cell--8-col,.mdl-cell--8-col-phone.mdl-cell--8-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-phone.mdl-cell--8-col-phone {
        width: 100%
    }

    .mdl-cell--9-col,.mdl-cell--9-col-phone.mdl-cell--9-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-phone.mdl-cell--9-col-phone {
        width: 100%
    }

    .mdl-cell--10-col,.mdl-cell--10-col-phone.mdl-cell--10-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-phone.mdl-cell--10-col-phone {
        width: 100%
    }

    .mdl-cell--11-col,.mdl-cell--11-col-phone.mdl-cell--11-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-phone.mdl-cell--11-col-phone {
        width: 100%
    }

    .mdl-cell--12-col,.mdl-cell--12-col-phone.mdl-cell--12-col-phone {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-phone.mdl-cell--12-col-phone {
        width: 100%
    }
}

@media (min-width:480px) and (max-width:839px) {
    .mdl-grid {
        padding: 8px
    }

    .mdl-cell {
        margin: 8px;
        width: calc(50% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell {
        width: 50%
    }

    .mdl-cell--hide-tablet {
        display: none!important
    }

    .mdl-cell--1-col,.mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
        width: calc(12.5% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
        width: 12.5%
    }

    .mdl-cell--2-col,.mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
        width: calc(25% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
        width: 25%
    }

    .mdl-cell--3-col,.mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
        width: calc(37.5% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
        width: 37.5%
    }

    .mdl-cell--4-col,.mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
        width: calc(50% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
        width: 50%
    }

    .mdl-cell--5-col,.mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
        width: calc(62.5% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
        width: 62.5%
    }

    .mdl-cell--6-col,.mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
        width: calc(75% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
        width: 75%
    }

    .mdl-cell--7-col,.mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
        width: calc(87.5% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
        width: 87.5%
    }

    .mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
        width: 100%
    }

    .mdl-cell--9-col,.mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
        width: 100%
    }

    .mdl-cell--10-col,.mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
        width: 100%
    }

    .mdl-cell--11-col,.mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
        width: 100%
    }

    .mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
        width: 100%
    }
}

@media (min-width:840px) {
    .mdl-grid {
        padding: 8px
    }

    .mdl-cell {
        margin: 8px;
        width: calc(33.3333333333% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell {
        width: 33.3333333333%
    }

    .mdl-cell--hide-desktop {
        display: none!important
    }

    .mdl-cell--1-col,.mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
        width: calc(8.3333333333% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
        width: 8.3333333333%
    }

    .mdl-cell--2-col,.mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
        width: calc(16.6666666667% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
        width: 16.6666666667%
    }

    .mdl-cell--3-col,.mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
        width: calc(25% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
        width: 25%
    }

    .mdl-cell--4-col,.mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
        width: calc(33.3333333333% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
        width: 33.3333333333%
    }

    .mdl-cell--5-col,.mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
        width: calc(41.6666666667% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
        width: 41.6666666667%
    }

    .mdl-cell--6-col,.mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
        width: calc(50% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
        width: 50%
    }

    .mdl-cell--7-col,.mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
        width: calc(58.3333333333% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
        width: 58.3333333333%
    }

    .mdl-cell--8-col,.mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
        width: calc(66.6666666667% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
        width: 66.6666666667%
    }

    .mdl-cell--9-col,.mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
        width: calc(75% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
        width: 75%
    }

    .mdl-cell--10-col,.mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
        width: calc(83.3333333333% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
        width: 83.3333333333%
    }

    .mdl-cell--11-col,.mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
        width: calc(91.6666666667% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
        width: 91.6666666667%
    }

    .mdl-cell--12-col,.mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
        width: calc(100% - 16px)
    }

    .mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
        width: 100%
    }
}

body {
    margin: 0
}

.styleguide-demo h1 {
    margin: 48px 24px 0
}

.styleguide-demo h1:after {
    content: '';
    display: block;
    width: 100%;
    border-bottom: 1px solid rgba(0,0,0,.5);
    margin-top: 24px
}

.styleguide-demo {
    opacity: 0;
    -webkit-transition: opacity .6s ease;
    transition: opacity .6s ease
}

.styleguide-masthead {
    height: 256px;
    background: #212121;
    padding: 115px 16px 0
}

.styleguide-container {
    position: relative;
    max-width: 960px;
    width: 100%
}

.styleguide-title {
    color: #fff;
    bottom: auto;
    position: relative;
    font-size: 56px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: -.02em
}

.styleguide-title:after {
    border-bottom: 0
}

.styleguide-title span {
    font-weight: 300
}

.mdl-styleguide .mdl-layout__drawer .mdl-navigation__link {
    padding: 10px 24px
}

.demosLoaded .styleguide-demo {
    opacity: 1
}

iframe {
    display: block;
    width: 100%;
    border: none
}

iframe.heightSet {
    overflow: hidden
}

.demo-wrapper {
    margin: 24px
}

.demo-wrapper iframe {
    border: 1px solid rgba(0,0,0,.5)
}

/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[assets/sprite-av-white.css]" value=".icon {
  background-image: url(sprite-av-white.png);
}
.icon-ic_add_to_queue_white_24dp {
  background-position: -32px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_airplay_white_24dp {
  background-position: -192px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_album_white_24dp {
  background-position: -0px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_art_track_white_24dp {
  background-position: -32px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_av_timer_white_24dp {
  background-position: -64px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_closed_caption_white_24dp {
  background-position: -64px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_equalizer_white_24dp {
  background-position: -0px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_explicit_white_24dp {
  background-position: -32px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_fast_forward_white_24dp {
  background-position: -64px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_fast_rewind_white_24dp {
  background-position: -96px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_fiber_dvr_white_24dp {
  background-position: -96px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_fiber_manual_record_white_24dp {
  background-position: -96px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_fiber_new_white_24dp {
  background-position: -0px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_fiber_pin_white_24dp {
  background-position: -32px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_fiber_smart_record_white_24dp {
  background-position: -64px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_forward_10_white_24dp {
  background-position: -96px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_forward_30_white_24dp {
  background-position: -128px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_forward_5_white_24dp {
  background-position: -128px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_games_white_24dp {
  background-position: -128px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_hd_white_24dp {
  background-position: -128px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_hearing_white_24dp {
  background-position: -0px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_high_quality_white_24dp {
  background-position: -32px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_library_add_white_24dp {
  background-position: -64px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_library_books_white_24dp {
  background-position: -96px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_library_music_white_24dp {
  background-position: -128px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_loop_white_24dp {
  background-position: -160px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_mic_none_white_24dp {
  background-position: -160px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_mic_off_white_24dp {
  background-position: -160px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_mic_white_24dp {
  background-position: -160px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_movie_white_24dp {
  background-position: -160px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_music_video_white_24dp {
  background-position: -0px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_new_releases_white_24dp {
  background-position: -32px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_not_interested_white_24dp {
  background-position: -64px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_pause_circle_filled_white_24dp {
  background-position: -96px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_pause_circle_outline_white_24dp {
  background-position: -128px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_pause_white_24dp {
  background-position: -160px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_play_arrow_white_24dp {
  background-position: -0px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_play_circle_filled_white_24dp {
  background-position: -192px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_play_circle_outline_white_24dp {
  background-position: -192px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_playlist_add_check_white_24dp {
  background-position: -192px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_playlist_add_white_24dp {
  background-position: -192px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_playlist_play_white_24dp {
  background-position: -192px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_queue_music_white_24dp {
  background-position: -0px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_queue_play_next_white_24dp {
  background-position: -32px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_queue_white_24dp {
  background-position: -64px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_radio_white_24dp {
  background-position: -96px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_recent_actors_white_24dp {
  background-position: -128px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_remove_from_queue_white_24dp {
  background-position: -160px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_repeat_one_white_24dp {
  background-position: -192px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_repeat_white_24dp {
  background-position: -224px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_replay_10_white_24dp {
  background-position: -224px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_replay_30_white_24dp {
  background-position: -224px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_replay_5_white_24dp {
  background-position: -224px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_replay_white_24dp {
  background-position: -224px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_shuffle_white_24dp {
  background-position: -224px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_skip_next_white_24dp {
  background-position: -224px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_skip_previous_white_24dp {
  background-position: -0px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_slow_motion_video_white_24dp {
  background-position: -32px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_snooze_white_24dp {
  background-position: -64px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_sort_by_alpha_white_24dp {
  background-position: -96px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_stop_white_24dp {
  background-position: -128px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_subscriptions_white_24dp {
  background-position: -160px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_subtitles_white_24dp {
  background-position: -192px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_surround_sound_white_24dp {
  background-position: -224px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_video_library_white_24dp {
  background-position: -256px -0px;
  width: 32px;
  height: 32px;
}
.icon-ic_videocam_off_white_24dp {
  background-position: -256px -32px;
  width: 32px;
  height: 32px;
}
.icon-ic_videocam_white_24dp {
  background-position: -256px -64px;
  width: 32px;
  height: 32px;
}
.icon-ic_volume_down_white_24dp {
  background-position: -256px -96px;
  width: 32px;
  height: 32px;
}
.icon-ic_volume_mute_white_24dp {
  background-position: -256px -128px;
  width: 32px;
  height: 32px;
}
.icon-ic_volume_off_white_24dp {
  background-position: -256px -160px;
  width: 32px;
  height: 32px;
}
.icon-ic_volume_up_white_24dp {
  background-position: -256px -192px;
  width: 32px;
  height: 32px;
}
.icon-ic_web_asset_white_24dp {
  background-position: -256px -224px;
  width: 32px;
  height: 32px;
}
.icon-ic_web_white_24dp {
  background-position: -0px -256px;
  width: 32px;
  height: 32px;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[styles.css]" value="/* Master Styles */
h1 {
  color: #369;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 250%;
}
h2, h3 {
  color: #444;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: lighter;
}
body {
  margin: 2em;
}
body, input[text], button {
  color: #888;
  font-family: Cambria, Georgia;
}
a {
  cursor: pointer;
  cursor: hand;
}
button {
  font-family: Arial;
  background-color: #eee;
  border: none;
  padding: 5px 10px;
  border-radius: 4px;
  cursor: pointer;
  cursor: hand;
}
button:hover {
  background-color: #cfd8dc;
}
button:disabled {
  background-color: #eee;
  color: #aaa;
  cursor: auto;
}

/* Navigation link styles */
nav a {
  padding: 5px 10px;
  text-decoration: none;
  margin-top: 10px;
  display: inline-block;
  background-color: #eee;
  border-radius: 4px;
}
nav a:visited, a:link {
  color: #607D8B;
}
nav a:hover {
  color: #039be5;
  background-color: #CFD8DC;
}
nav a.active {
  color: #039be5;
}

/* items class */
.items {
  margin: 0 0 2em 0;
  list-style-type: none;
  padding: 0;
  width: 24em;
}
.items li {
  cursor: pointer;
  position: relative;
  left: 0;
  background-color: #EEE;
  margin: .5em;
  padding: .3em 0;
  height: 1.6em;
  border-radius: 4px;
}
.items li:hover {
  color: #607D8B;
  background-color: #DDD;
  left: .1em;
}
.items li.selected:hover {
  background-color: #BBD8DC;
  color: white;
}
.items .text {
  position: relative;
  top: -3px;
}
.items {
  margin: 0 0 2em 0;
  list-style-type: none;
  padding: 0;
  width: 24em;
}
.items li {
  cursor: pointer;
  position: relative;
  left: 0;
  background-color: #EEE;
  margin: .5em;
  padding: .3em 0;
  height: 1.6em;
  border-radius: 4px;
}
.items li:hover {
  color: #607D8B;
  background-color: #DDD;
  left: .1em;
}
.items li.selected {
  background-color: #CFD8DC;
  color: white;
}

.items li.selected:hover {
  background-color: #BBD8DC;
}
.items .text {
  position: relative;
  top: -3px;
}
.items .badge {
  display: inline-block;
  font-size: small;
  color: white;
  padding: 0.8em 0.7em 0 0.7em;
  background-color: #607D8B;
  line-height: 1em;
  position: relative;
  left: -1px;
  top: -4px;
  height: 1.8em;
  margin-right: .8em;
  border-radius: 4px 0 0 4px;
}
/* everywhere else */
* {
  font-family: Arial, Helvetica, sans-serif;
}


/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[app/admin/admin.component.html]" value="<h2>ADMIN</h2>
<p>
  Do great things!
</p>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/app.component.html]" value="<div class=&quot;mdl-layout mdl-js-layout mdl-layout--fixed-header&quot;>
  <story-nav></story-nav>
  <main class=&quot;mdl-layout__content&quot;>
    <section>
      <div class=&quot;page-content&quot;>
        <router-outlet></router-outlet>
      </div>
    </section>
  </main>
  <story-spinner></story-spinner>
  <story-toast></story-toast>
  <story-modal></story-modal>
</div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/characters/character-list/character-list.component.html]" value="<article class=&quot;template animated slideInRight&quot;>
  <h4>Characters</h4>

  <a href=&quot;&quot; [routerLink]=&quot;['/characters', 'new']&quot;><button class=&quot;story-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect&quot;>Add</button></a>

  <story-filter-text (changed)=&quot;filterChanged($event)&quot;></story-filter-text>

  <ul class=&quot;characters&quot;>
    <li *ngFor=&quot;let character of filteredCharacters | sortCharacters;trackBy:trackByCharacters&quot;>

      <story-character-button [character]=&quot;character&quot;></story-character-button>

    </li>
  </ul>
</article>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/characters/character/character.component.html]" value="<article class=&quot;template animated slideInRight&quot;>
  <div *ngIf=&quot;character&quot;>
    <h4>{{editCharacter.name | uppercase}} details</h4>

    <div class=&quot;mdl-textfield mdl-js-textfield mdl-textfield--floating-label&quot;>
      <label class=&quot;mdl-textfield__label&quot; for=&quot;nametext&quot;>Name</label>
      <input type=&quot;text&quot; id=&quot;nametext&quot; class=&quot;mdl-textfield__input&quot; [(ngModel)]=&quot;editCharacter.name&quot; />
    </div>

    <div class=&quot;mdl-textfield mdl-js-textfield mdl-textfield--floating-label&quot;>
      <label class=&quot;mdl-textfield__label&quot; for=&quot;sidetext&quot;>Side</label>
      <input type=&quot;text&quot; id=&quot;sidetext&quot; class=&quot;mdl-textfield__input&quot; [(ngModel)]=&quot;editCharacter.side&quot; />
    </div>

    <div>
      <button class=&quot;dashboard-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect
      mdl-button--accent&quot; (click)=&quot;save()&quot;>Save</button>
      &amp;nbsp;
      <button class=&quot;dashboard-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect
      &quot; (click)=&quot;cancel()&quot; [class.not-displayed]=&quot;isAddMode()&quot;>Cancel</button>
      &amp;nbsp;
      <button class=&quot;dashboard-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect&quot; (click)=&quot;delete()&quot; [class.not-displayed]=&quot;isAddMode()&quot;>Delete</button>
    </div>

  </div>
</article>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/characters/shared/character-button/character-button.component.html]" value="<div class=&quot;mdl-card mdl-shadow--2dp story-card&quot;>
  <div class=&quot;mdl-card__title&quot;>
    <h2 class=&quot;mdl-card__title-text&quot;>{{character.id}}. {{character.name}}</h2>
  </div>
  <div class=&quot;mdl-card__menu&quot;>
    <a href=&quot;&quot; [routerLink]=&quot;['/characters', character.id]&quot;><button class=&quot;mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect&quot;>

      <div class=&quot;icon mdl-color--primary icon-ic_play_circle_filled_white_24dp&quot;></div>

    </button></a>
  </div>
</div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/core/modal/modal.component.html]" value="<div id=&quot;confirmationModal&quot; class=&quot;dialog-container&quot;>
  <div class=&quot;mdl-card mdl-shadow--16dp&quot;>
    <h5>{{title}}</h5>
    <p>{{message}}</p>
    <div class=&quot;mdl-card__actions dialog-button-bar&quot;>
      <button class=&quot;mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect&quot; id=&quot;cancelButton&quot; data-upgraded=&quot;,MaterialButton,MaterialRipple&quot;>{{cancelText}}<span class=&quot;mdl-button__ripple-container&quot;><span class=&quot;mdl-ripple&quot;></span></span>
      </button>
      <button class=&quot;mdl-button mdl-button--accent mdl-button--raised mdl-js-button mdl-js-ripple-effect&quot; id=&quot;okButton&quot; data-upgraded=&quot;,MaterialButton,MaterialRipple&quot;>{{okText}}<span class=&quot;mdl-button__ripple-container&quot;><span class=&quot;mdl-ripple&quot;></span></span>
      </button>
    </div>
  </div>
</div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/core/nav/nav.component.html]" value="<header class=&quot;mdl-layout__header&quot;>
  <div class=&quot;mdl-layout__header-row&quot;>
    <a class=&quot;md-title-icon&quot; href=&quot;http://angular.io&quot; target=&quot;_blank&quot;><i></i></a>
    <span class=&quot;mdl-layout-title&quot;>Story Tracker</span>
    <button id=&quot;reset-button&quot; class=&quot;mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent mdl-button--raised&quot; (click)=&quot;resetDb()&quot;>Reset Data</button>
  </div>
  <div class=&quot;mdl-navigation&quot;>
    <a *ngFor=&quot;let item of menuItems&quot; [routerLink]=&quot;item.link&quot; class=&quot;nav-link&quot; routerLinkActive=&quot;router-link-active&quot; href=&quot;&quot;>{{item.caption}}</a>
  </div>
</header>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/core/spinner/spinner.component.html]" value="<div class=&quot;spinner mdl-spinner mdl-js-spinner mdl-spinner--single-color&quot; [class.is-active]=&quot;visible&quot;></div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/core/toast/toast.component.html]" value="<div id=&quot;toast&quot; class=&quot;toast-container&quot;>
  <div class=&quot;toast-card mdl-shadow--16dp&quot;>
    <h5 class=&quot;toast-title&quot;>{{title}}</h5>
    <p class=&quot;toast-message&quot;>{{message}}</p>
  </div>
</div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/dashboard/dashboard.component.html]" value="<article class=&quot;template animated slideInRight&quot;>
  <h4>{{title}}</h4>
  <div>
    <div class=&quot;mdl-grid&quot;>
      <div class=&quot;mdl-cell mdl-cell--3-col&quot;
        *ngFor=&quot;let character of characters | async;trackBy:trackByCharacters&quot;
        (click)=&quot;gotoDetail(character)&quot;>
        <story-dashboard-button [character]=&quot;character&quot;></story-dashboard-button>
      </div>
    </div>
  </div>
</article>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/dashboard/shared/dashboard-button/dashboard-button.component.html]" value="<button class=&quot;story-button mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent mdl-button--raised&quot;>{{character.name}}</button>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/login/login.component.html]" value="<h2>LOGIN</h2>
<p>
  <button class=&quot;mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent mdl-button--raised&quot; (click)=&quot;login()&quot; *ngIf=&quot;!isLoggedIn&quot;>Login</button>

  <button class=&quot;mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent mdl-button--raised&quot; (click)=&quot;logout()&quot; *ngIf=&quot;isLoggedIn&quot;>Logout</button>
</p>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/shared/filter-text/filter-text.component.html]" value="<div>
  <div class=&quot;mdl-textfield mdl-js-textfield mdl-textfield--floating-label&quot;>
    <label class=&quot;mdl-textfield__label&quot; for=&quot;filterText&quot;>Filter...</label>
    <input type=&quot;text&quot; id=&quot;filterText&quot; class=&quot;mdl-textfield__input&quot; [(ngModel)]=&quot;filter&quot; (keyup)=&quot;filterChanged($event)&quot; />
  </div>
</div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/vehicles/shared/vehicle-button/vehicle-button.component.html]" value="<div class=&quot;mdl-card mdl-shadow--2dp story-card&quot;>
  <div class=&quot;mdl-card__title&quot;>
    <h2 class=&quot;mdl-card__title-text&quot;>{{vehicle.id}}. {{vehicle.name | initCaps}}</h2>
  </div>
  <div class=&quot;mdl-card__menu&quot;>
    <a href=&quot;&quot; [routerLink]=&quot;['/vehicles', vehicle.id]&quot;><button class=&quot;mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect&quot;>

      <div class=&quot;icon mdl-color--primary icon-ic_play_circle_filled_white_24dp&quot;></div>

    </button></a>
  </div>
</div>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/vehicles/vehicle-list/vehicle-list.component.html]" value="<article class=&quot;template animated slideInRight&quot;>
  <h4>Vehicles</h4>

  <a href=&quot;&quot; [routerLink]=&quot;['/vehicles', 'new']&quot;><button class=&quot;story-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect&quot;>Add</button></a>

  <story-filter-text (changed)=&quot;filterChanged($event)&quot;></story-filter-text>

  <ul class=&quot;vehicles&quot;>
    <li *ngFor=&quot;let vehicle of filteredVehicles;trackBy:trackByVehicles&quot;>
      <story-vehicle-button [vehicle]=&quot;vehicle&quot;></story-vehicle-button>
    </li>
  </ul>
</article>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[app/vehicles/vehicle/vehicle.component.html]" value="<article class=&quot;template animated slideInRight&quot;>
  <div *ngIf=&quot;vehicle&quot;>
    <h4>{{editVehicle.name | uppercase}} details</h4>

    <div class=&quot;mdl-textfield mdl-js-textfield mdl-textfield--floating-label&quot;>
      <label class=&quot;mdl-textfield__label&quot; for=&quot;nametext&quot;>Name</label>
      <input type=&quot;text&quot; id=&quot;nametext&quot; class=&quot;mdl-textfield__input&quot; [(ngModel)]=&quot;editVehicle.name&quot; />
    </div>

    <div class=&quot;mdl-textfield mdl-js-textfield mdl-textfield--floating-label&quot;>
      <label class=&quot;mdl-textfield__label&quot; for=&quot;typeText&quot;>Type</label>
      <input type=&quot;text&quot; id=&quot;typeText&quot; class=&quot;mdl-textfield__input&quot; [(ngModel)]=&quot;editVehicle.type&quot; />
    </div>

    <div>
      <button class=&quot;story-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect
      mdl-button--accent&quot; (click)=&quot;save()&quot;>Save</button>
      &amp;nbsp;
      <button class=&quot;story-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect&quot; (click)=&quot;cancel()&quot; [class.not-displayed]=&quot;isAddMode()&quot;>Cancel</button>
      &amp;nbsp;
      <button class=&quot;story-button mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect&quot; (click)=&quot;delete()&quot; [class.not-displayed]=&quot;isAddMode()&quot;>Delete</button>
    </div>

  </div>
</article>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[index.html]" value="<!DOCTYPE html>
<html>

<head>
  <script>document.write('<base href=&quot;' + document.location + '&quot; />');</script>

  <meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;>
  <link rel=&quot;icon&quot; type=&quot;image/x-icon&quot; href=&quot;favicon.ico&quot;>

  <script src=&quot;assets/material.min.js&quot;></script>
  <link rel=&quot;stylesheet&quot; href=&quot;assets/material.deep_orange-pink.min.css&quot;>
  <link rel=&quot;stylesheet&quot; href=&quot;assets/sprite-av-white.css&quot;>
  <link rel=&quot;stylesheet&quot; href=&quot;assets/animate.css&quot;>
  <link rel=&quot;stylesheet&quot; href=&quot;assets/app.css&quot;>

  <!-- Polyfill(s) for older browsers -->
  <script src=&quot;https://npmcdn.com/core-js/client/shim.min.js&quot;></script>

  <script src=&quot;https://npmcdn.com/zone.js@0.6.26?main=browser&quot;></script>
  <script src=&quot;https://npmcdn.com/reflect-metadata@0.1.8&quot;></script>
  <script src=&quot;https://npmcdn.com/systemjs@0.19.40/dist/system.src.js&quot;></script>
</head>

<body>
  <story-app>Loading Storyline Tracker ...</story-app>

  <script>
    System.import('systemjs.config.js').then(function () {
        System.import('main');
      }).catch(console.error.bind(console));
  </script>
</body>

</html>


<!-- 
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
-->"><input type="hidden" name="files[README.md]" value="# Storyline Tracker

# Getting Started

1. Fork and clone this repo

1. `npm i`

1. Run the TypeScript compiler, watch for changes, start the server, and launch the browser `npm start`
"><input type="hidden" name="files[api/characters.json]" value="{
  &quot;data&quot;: [
    {
      &quot;id&quot;: 11,
      &quot;name&quot;: &quot;Chewbacca&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 12,
      &quot;name&quot;: &quot;Rey&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 13,
      &quot;name&quot;: &quot;Finn (FN2187)&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 14,
      &quot;name&quot;: &quot;Han Solo&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 15,
      &quot;name&quot;: &quot;Leia Organa&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 16,
      &quot;name&quot;: &quot;Luke Skywalker&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 17,
      &quot;name&quot;: &quot;Poe Dameron&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 18,
      &quot;name&quot;: &quot;Kylo Ren&quot;,
      &quot;side&quot;: &quot;dark&quot;
    },
    {
      &quot;id&quot;: 19,
      &quot;name&quot;: &quot;Supreme Commander Snoke&quot;,
      &quot;side&quot;: &quot;dark&quot;
    },
    {
      &quot;id&quot;: 20,
      &quot;name&quot;: &quot;R2-D2&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 21,
      &quot;name&quot;: &quot;BB8&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 22,
      &quot;name&quot;: &quot;C-3PO&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 23,
      &quot;name&quot;: &quot;Maz Kanata&quot;,
      &quot;side&quot;: &quot;light&quot;
    },
    {
      &quot;id&quot;: 24,
      &quot;name&quot;: &quot;Captain Phasma&quot;,
      &quot;side&quot;: &quot;dark&quot;
    },
    {
      &quot;id&quot;: 25,
      &quot;name&quot;: &quot;General Hux&quot;,
      &quot;side&quot;: &quot;dark&quot;
    },
    {
      &quot;id&quot;: 26,
      &quot;name&quot;: &quot;Lor San Tekka&quot;,
      &quot;side&quot;: &quot;light&quot;
    }
  ]
}"><input type="hidden" name="files[api/vehicles.json]" value="{
  &quot;data&quot;: [
    {
      &quot;id&quot;: 30,
      &quot;name&quot;: &quot;Millennium Falcon&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 31,
      &quot;name&quot;: &quot;Y-Wing Fighter&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 32,
      &quot;name&quot;: &quot;X-Wing Fighter&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 33,
      &quot;name&quot;: &quot;Imperial Star Destroyer&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 34,
      &quot;name&quot;: &quot;AT-AT Walker&quot;,
      &quot;type&quot;: &quot;land&quot;
    },
    {
      &quot;id&quot;: 35,
      &quot;name&quot;: &quot;TIE Fighter&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 36,
      &quot;name&quot;: &quot;B-Wing Fighter&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 37,
      &quot;name&quot;: &quot;ETA-2 Jedi Starfighter&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 38,
      &quot;name&quot;: &quot;TIE Interceptor&quot;,
      &quot;type&quot;: &quot;space&quot;
    },
    {
      &quot;id&quot;: 39,
      &quot;name&quot;: &quot;X-34 Landspeeder&quot;,
      &quot;type&quot;: &quot;land&quot;
    },
    {
      &quot;id&quot;: 40,
      &quot;name&quot;: &quot;Snow Speeder&quot;,
      &quot;type&quot;: &quot;land&quot;
    }
  ]
}"><input type="hidden" name="files[assets/ng.base64.png]" value="AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8BNzHhVTYx398wLbrHMi7DO////wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeE5NzHhxzcx4f83MeD/MC21/zAttf8xLbutMy/HI////wH///8B////Af///wH///8B////ATcx4SE3MeGrNzHh/zcx4f83MeH/NzHg/zAttf8wLbX/MC21/zAttvsxLbyPMy/KD////wH///8B////ATcx4VU3MeH7T0nk/1ZR5f84MuH/NzHh/zcx4P8wLbX/MC21/zAttf9VUsL/S0i+/zAtuPEyLsI9////Af///wE3MeGHNzHh/5OP7v//////bWjp/zcx4f83MeD/MC21/zAttf9bWMT//////4eF1P8wLbX/MS68e////wH///8BNzHhszcx4f9DPeL/9fT9/7279f83MeH/NzHg/zAttf8wLbX/tLPk/+7u+f84Nbf/MC21/zAtt43///8B////ATcx4dk3MeH/NzHh/6il8v/7+/7/2dj5/9nY+f/Y2PH/2Njx//v7/f+Wldn/MC21/zAttf8xLbu/////Af///wE3MeHzNzHh/zcx4f9RTOX//Pz+/+Xk+/+0svP/sbDj/+Pi9f/29vz/Pzy6/zAttf8wLbX/MC275f///wH///8BNzHh/Tcx4f83MeH/NzHh/7679f/t7fz/OzXg/zo3uP/w7/n/paTf/zAttf8wLbX/MC21/zAtuPn///8BNzHhIzcx4f83MeH/NzHh/zcx4f9kX+f//////3156v+OjNb/+/v9/0lHvv8wLbX/MC21/zAttf8wLbX/NC/LDzcx4U03MeH/NzHh/zcx4f83MeH/NzHh/9PR+P/U0vj/6+v3/7W05f8wLbX/MC21/zAttf8wLbX/MC21/zMvx0E3MeFrNzHh/zcx4f83MeH/NzHh/zcx4f96dur///////7+//9WU8L/MC21/zAttf8wLbX/MC21/zAttf8yLsNlNzHhfTcx4f83MeH/NzHh/zcx4f83MeH/OTPh/+bl+//FxOr/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MS68ezcx4UE3MeHVNzHh/zcx4f83MeH/NzHh/zcx4f+PjO7/ZGLI/zAttf8wLbX/MC21/zAttf8wLbX/MS263TAtuUX///8B////ATcx4Sk3MeGFNzHh5zcx4f83MeH/PTfh/zAttf8wLbX/MC21/zAtuuUxLbuFMy/HL////wH///8B////Af///wH///8B////Af///wE3MeFBNzHhlzYx3/MwLbnrMC26izMuxjn///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeGLNjHd9zIuwOMzL8o/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeFfNzHh8Tcx4f83Md//MC21/zAttv8yLsPLMy/KH////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeE7NzHh4Tcx4f83MeH/NzHh/zcx3/8wLbX/MC21/zAttf8wLbj/My7FrTQvzQv///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeEdNzHhxzcx4f83MeH/NzHh/zcx4f83MeH/NzHf/zAttf8wLbX/MC21/zAttf8wLbX/MS67+zMvx4n///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeEJNzHhqTcx4f03MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83Md//MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zEuvfEzL8lf////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BNzHhgzcx4fk3MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx3/8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8yLsHfMy/KO////wH///8B////Af///wH///8B////Af///wH///8BNzHhWTcx4e83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHf/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbb/Mi7DxzMvyx3///8B////Af///wH///8B////Af///wE3MeH5NzHh/zcx4f9YU+b/d3Lr/3Zy6v92cur/PDfi/zcx4f83MeH/NzHh/zcx4f83Md//MC21/zAttf8wLbX/MC21/zAttf8wLbX/d3XO/3580f9+fNH/TkvA/zAttf8wLbX/Mi7B2f///wH///8B////Af///wH///8B////ATcx4f83MeH/NzHh/1VQ5f/+/v////////////97d+v/NzHh/zcx4f83MeH/NzHh/zcx3/8wLbX/MC21/zAttf8wLbX/MC21/1lXxP////////////r6/f9EQrz/MC21/zAttf8xLr7t////Af///wH///8B////Af///wE3MeEbNzHh/zcx4f83MeH/NzHh/8LA9v///////////8vK9/83MeH/NzHh/zcx4f83MeH/NzHf/zAttf8wLbX/MC21/zAttf8wLbX/s7Lk////////////rq3i/zAttf8wLbX/MC21/zEuu/v///8B////Af///wH///8B////ATcx4U83MeH/NzHh/zcx4f83MeH/aGPo/////////////////1NO5f83MeH/NzHh/zcx4f83Md//MC21/zAttf8wLbX/MC21/0I/u//6+v3///////7+//9QTcD/MC21/zAttf8wLbX/MC22/zUw0gP///8B////Af///wH///8BNzHhfTcx4f83MeH/NzHh/zcx4f83MeH/19b5////////////o6Dx/zcx4f83MeH/NzHh/zcx3/8wLbX/MC21/zAttf8wLbX/lZTZ////////////vbzn/zAttf8wLbX/MC21/zAttf8wLbX/My/LM////wH///8B////Af///wE3MeGlNzHh/zcx4f83MeH/NzHh/zcx4f9+e+z////////////y8f3/tLL0/7Sy9P+0svT/tLLz/7Kx4/+yseP/srHj/7Kx4//v7/n///////////9dW8X/MC21/zAttf8wLbX/MC21/zAttf8zL8hp////Af///wH///8B////ATcx4cM3MeH/NzHh/zcx4f83MeH/NzHh/zs14v/p6Pz/////////////////////////////////////////////////////////////////zc3t/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zMvx5f///8B////Af///wH///8BNzHh3Tcx4f83MeH/NzHh/zcx4f83MeH/NzHh/5OQ7/////////////////////////////////////////////////////////////////9ta8v/MC21/zAttf8wLbX/MC21/zAttf8wLbX/Mi7Fvf///wH///8B////Af///wE3MeHvNzHh/zcx4f83MeH/NzHh/zcx4f83MeH/RD7j//b2/v///////////5eU7/9pZen/aWXn/2RiyP9kYsj/kI7X////////////3Nzz/zEutf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8yLsLZ////Af///wH///8B////ATcx4fs3MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/qqfy////////////vLr1/zcx4f83Md//MC21/zAttf/Dwur///////////98etD/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zIuvu3///8B////Af///wH///8BNzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f9STOX//f3////////8/P//SkTk/zcx3/8wLbX/WFXD////////////5+f3/zUyt/8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MS67+////wH///8B////ATcx4Ss3MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f++vPX///////////+al/D/NzHf/zAttf+6ueb///////////+Ni9b/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbb/NTDWBf///wH///8BNzHhXTcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/2Vh6P///////////+rp/P86NOD/UU/B//7+////////8vL6/zo3uP8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf80L8s1////Af///wE3MeGJNzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/9XT+f///////////3dy6f+yseP///////////+cm9z/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zMvyWv///8B////ATcx4a03MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/enbr////////////29r5//39/v//////+fj9/0NAvP8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/My/Hl////wH///8BNzHhyzcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f86NOH/5+b7//////////////////////+rqeH/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8yLsW9////Af///wE3MeHjNzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f+Qje7//////////////////v7//01Lv/8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zIuwtn///8B////ATcx4fM3MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/0I84//19P3///////////+7uuf/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/Mi6/7////wH///8BNzHh/Tcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/6Wi8f///////////1tZxP8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8xLrv7////Af///wE3MeH9NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/T0rl//39///Jyez/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAtuP////8B////ATcx4QU3MeF5NzHh3Tcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f83MeH/vLr0/2pnyv8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbX/MC22/zIuwOczL8aTNC/OFf///wH///8B////Af///wH///8BNzHhEzcx4ZM3MeHpNzHh/zcx4f83MeH/NzHh/zcx4f83MeH/NzHh/zcx4f9QS+P/MS61/zAttf8wLbX/MC21/zAttf8wLbX/MC21/zAttf8wLbb/Mi6/6zMvx5szL8od////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wE3MeEpNzHhqTcx4fM3MeH/NzHh/zcx4f83MeH/NzHh/zcx3/8wLbX/MC21/zAttf8wLbX/MC21/zAttf8xLr7vMy/GpTQvzCf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////ATcx4UM3MeG/NzHh+Tcx4f83MeH/NzHf/zAttf8wLbX/MC21/zEuvfMzLsWvMy/KMf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BNzHhYTcx4dE2Md77MS689zIuxbczL8s9////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"><input type="hidden" name="files[assets/ps-icon.base64.png]" value="iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAMGGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUU0kXnldSCAktEAEpoTdBepXeO9LBRkgChBJCIKjYkUUF14KKCFZ0VcS2FkDWigULImCvG0RUVtbFgg2Vf5IAuu5fzn/Pmfe+d+feO9+9M/PODACK9iyBIBtVAiCHXyCMDvRhJiYlM0ligAAiYAAjQGax8wXeUVFhAMro++/y7ha0hnLdUhLrn/3/VZQ53Hw2AEgUxKmcfHYOxEcAwDXZAmEBAIQOqDeYWSCQ4LcQqwohQQCIZAlOl2EtCU6VYWupTWy0L8R+AJCpLJYwHQAFSXxmITsdxlEQQGzN5/D4EG+F2IOdweJALIZ4Qk5OLsSKVIhNU7+Lk/63mKljMVms9DEsy0UqZD9eviCbNfv/LMf/lpxs0egY+rBRM4RB0ZKcYd12Z+WGSjDkjhznp0ZEQqwC8UUeR2ovwfcyREFxI/b97HxfWDM4zwAFHJZfKMSwlihDlBXnPYJtWUKpL7RHI3gFwbEjOFWYGz0SHy3kZ0eEjcRZmsENHsWbufn+MaM2abyAYIjhSkOPFGXEJsh4oucKefERECtA3JGfFRM64vuoKMM3YtRGKIqWcDaE+G2aMCBaZoOp5+SP5oVZsVnSsdQh9irIiA2S+WKJ3PzEsFEOHK6fv4wDxuHy40a4YXB1+USP+JYKsqNG7LHN3OzAaFmdsYP5hTGjvl0FcIHJ6oA9zmSFRMn4Y+8EBVGxMm44DsKAL/ADTCCCLRXkgkzAa+9v7Idfsp4AwAJCkA64wHJEM+qRIO3hw2cMKAJ/QsQF+WN+PtJeLiiE+i9jWtnTEqRJewulHlngKcQ5uCbugbvhYfDpBZst7oy7jPoxFUdHJfoT/YhBxACi2RgPNmSdDZsQ8P6NLhS+uTA7CRf+aA7f4hGeEjoJjwk3CWLCXRAPnkijjFjN4BULf2DOBOFADKMFjGSXCmP2jdrgxpC1A+6Du0P+kDvOwDWBJW4PM/HGPWFuDlD7PUPRGLdvtfxxPAnr7/MZ0SuYKziMsEgdmxnfMasfo/h+VyMOfIf+aIktxQ5jrdgZ7BJ2HGsETOwU1oS1YSckeGwlPJGuhNHRoqXcsmAc3qiNdb11n/Xnf4zOGmEglM43KODOKpBsCN9cwWwhLz2jgOkN/8hcZjCfbTWBaWtt4wiA5P8u+328YUj/2wjj8jdd3mkAXMqgMv2bjmUAwLGnANDffdMZvIbbaxUAJzrYImGhTIdLHgRAAYpwZ2gAHWAATGFOtsARuAEv4A9CQCSIBUlgOqx6BsiBrGeCuWARKAXlYBVYB6rBFrAd7Ab7wCHQCI6DM+ACuAI6wE1wH66NXvACDIB3YAhBEBJCQ+iIBqKLGCEWiC3ijHgg/kgYEo0kISlIOsJHRMhcZDFSjlQg1cg2pA75FTmGnEEuIZ3IXaQb6UNeI59QDKWiqqg2aoxORJ1RbzQUjUWnoeloHlqElqAr0Cq0Ft2LNqBn0CvoTVSMvkAHMYDJYwxMD7PEnDFfLBJLxtIwITYfK8MqsVpsP9YM5/o6Jsb6sY84EafjTNwSrs8gPA5n43n4fHw5Xo3vxhvwc/h1vBsfwL8SaAQtggXBlRBMSCSkE2YSSgmVhJ2Eo4TzcO/0Et4RiUQG0YToBPdmEjGTOIe4nLiJeIB4mthJ7CEOkkgkDZIFyZ0USWKRCkilpA2kvaRTpC5SL+kDWZ6sS7YlB5CTyXxyMbmSvId8ktxFfkYeklOSM5JzlYuU48jNllspt0OuWe6aXK/cEEWZYkJxp8RSMimLKFWU/ZTzlAeUN/Ly8vryLvKT5XnyC+Wr5A/KX5Tvlv9IVaGaU32pU6ki6grqLupp6l3qGxqNZkzzoiXTCmgraHW0s7RHtA8KdAUrhWAFjsIChRqFBoUuhZeKcopGit6K0xWLFCsVDyteU+xXklMyVvJVYinNV6pROqZ0W2lQma5soxypnKO8XHmP8iXl5yokFWMVfxWOSonKdpWzKj10jG5A96Wz6YvpO+jn6b2qRFUT1WDVTNVy1X2q7aoDaipq9mrxarPUatROqIkZGMOYEczIZqxkHGLcYnwapz3Oexx33LJx+8d1jXuvPl7dS52rXqZ+QP2m+icNpoa/RpbGao1GjYeauKa55mTNmZqbNc9r9o9XHe82nj2+bPyh8fe0UC1zrWitOVrbtdq0BrV1tAO1BdobtM9q9+swdLx0MnXW6pzU6dOl63ro8nTX6p7S/YOpxvRmZjOrmOeYA3paekF6Ir1teu16Q/om+nH6xfoH9B8aUAycDdIM1hq0GAwY6hqGG841rDe8ZyRn5GyUYbTeqNXovbGJcYLxEuNG4+cm6ibBJkUm9SYPTGmmnqZ5prWmN8yIZs5mWWabzDrMUXMH8wzzGvNrFqiFowXPYpNF5wTCBJcJ/Am1E25bUi29LQst6y27rRhWYVbFVo1WLycaTkyeuHpi68Sv1g7W2dY7rO/bqNiE2BTbNNu8tjW3ZdvW2N6wo9kF2C2wa7J7ZW9hz7XfbH/Hge4Q7rDEocXhi6OTo9Bxv2Ofk6FTitNGp9vOqs5RzsudL7oQXHxcFrgcd/no6uha4HrI9S83S7cstz1uzyeZTOJO2jGpx13fneW+zV3swfRI8djqIfbU82R51no+9jLw4njt9Hrmbead6b3X+6WPtY/Q56jPe19X33m+p/0wv0C/Mr92fxX/OP9q/0cB+gHpAfUBA4EOgXMCTwcRgkKDVgfdDtYOZgfXBQ+EOIXMCzkXSg2NCa0OfRxmHiYMaw5Hw0PC14Q/iDCK4Ec0RoLI4Mg1kQ+jTKLyon6bTJwcNblm8tNom+i50a0x9JgZMXti3sX6xK6MvR9nGieKa4lXjJ8aXxf/PsEvoSJBnDgxcV7ilSTNJF5SUzIpOT55Z/LgFP8p66b0TnWYWjr11jSTabOmXZquOT17+okZijNYMw6nEFISUvakfGZFsmpZg6nBqRtTB9i+7PXsFxwvzlpOH9edW8F9luaeVpH2PN09fU16X4ZnRmVGP8+XV817lRmUuSXzfVZk1q6s4eyE7AM55JyUnGN8FX4W/1yuTu6s3E6BhaBUIM5zzVuXNyAMFe7MR/Kn5TcVqMKjTpvIVPSTqLvQo7Cm8MPM+JmHZynP4s9qm20+e9nsZ0UBRb/Mweew57TM1Zu7aG73PO952+Yj81PntywwWFCyoHdh4MLdiyiLshZdLbYurih+uzhhcXOJdsnCkp6fAn+qL1UoFZbeXuK2ZMtSfClvafsyu2Ubln0t45RdLrcuryz/vJy9/PLPNj9X/Ty8Im1F+0rHlZtXEVfxV91a7bl6d4VyRVFFz5rwNQ1rmWvL1r5dN2PdpUr7yi3rKetF68VVYVVNGww3rNrwuTqj+maNT82BjVobl218v4mzqWuz1+b9W7S3lG/5tJW39c62wG0Ntca1lduJ2wu3P90Rv6P1F+df6nZq7izf+WUXf5d4d/Tuc3VOdXV7tPasrEfrRfV9e6fu7djnt69pv+X+bQcYB8oPgoOig3/8mvLrrUOhh1oOOx/ef8ToyMaj9KNlDUjD7IaBxoxGcVNSU+exkGMtzW7NR3+z+m3Xcb3jNSfUTqw8STlZcnL4VNGpwdOC0/1n0s/0tMxouX828eyNc5PPtZ8PPX/xQsCFs63eracuul88fsn10rHLzpcbrzheaWhzaDt61eHq0XbH9oZrTteaOlw6mjsndZ7s8uw6c93v+oUbwTeu3Iy42Xkr7tad21Nvi+9w7jy/m3331b3Ce0P3Fz4gPCh7qPSw8pHWo9rfzX4/IHYUn+j26257HPP4fg+758WT/Cefe0ue0p5WPtN9Vvfc9vnxvoC+jj+m/NH7QvBiqL/0T+U/N740fXnkL6+/2gYSB3pfCV8Nv17+RuPNrrf2b1sGowYfvct5N/S+7IPGh90fnT+2fkr49Gxo5mfS56ovZl+av4Z+fTCcMzwsYAlZ0qMABhualgbA610A0JLg2QHe4ygKsvuXVBDZnVGKwH/CsjuaVODJZZcXAHELAQiDZ5TNsBlBTIVvyfE71gugdnZjbUTy0+xsZbGo8BZD+DA8/EYbAFIzAF+Ew8NDm4aHv+yAZO8CcDpPdu+TCBGe8bdK7lbgqsES8KP8CzeZbCTmJqkiAAAK50lEQVRYCa1YeXBV1R3+zrnLey8Lm4ghIRABgRA2E0gDCKgIhUEEOpOpVop/1GqnrTOOLXaqMw4dp1o7nXE6tbVFZ2y1BQs61opLQQoUBBTSUAUiypJICKskLHnL3U6/cx8vhryXAMKZd9+99yy/33d++7kCV9lW1cIYmiyOtCaiVv+CQGhyvSypAluqk07SXbu6ObUMCL4um5DglS4mQ/nAd8pLbZV3swJujhq4yYO6QQoVgxJKQLAbKYmgOe6jQcGo8y21r/jlui+ulNcVAaxfWNanNNp3vpTGPFMY45Xyb5J8MWWabUBYmqBGJwVh8u6wU8FLCWUecD21VQnxznG/fV3F6j3n06t6/r9sgF/WVk+WUj1mSDHdMmQvpRRSGlH6B75mNWJEiJ13SxKwEMr3glOuUusg5fP9Vn64JWtRl45LAjxcW9EvXxU+akp1H6VV5NOaAqLJgacL6exXDVYQqMHlCkGLExjPtrWlXhz2ft2Z7Nnpnh4BnlpUU05VPWMbxnyfJH0tsWvQtGQpTU3J9f1ghTCNJ/qt3pLTPrsFeGLhlAlRIVeYUpYngyCnCq8WK4UJ25B+yve3x121dNCardu60swJsGX+5FFRWC/GTGNqwvepzmsjua7M9bsUEhEpfcfzNrfL5JKSN3cc7jwvC2DDzOrrBkRjL0RNY1GKBtc9NG1I6eVpbXUme2XP2jZNU7iui5e8PPWTAas3dni42YWUuD6S9zBDyKKkq8Fl4e80nWOKcxyfLkoyMvRXjne/pU6LL3okBQQOLANYrOKijq/LMxMuQnB81u2zI4axkrGqn3aKSzV7xnQIOwJ3w3oE7SkaFIFehTgNASUDtf+cp+4btH59aI8EnW7vzJ0bKfXxtCXNStcnOK2+rpfH/nC7YcCAPXsO8u++B8agIQja2uAfPQERJjWOd117Oe+BECaMXoEU/t0zZ65dXlcXdKi4KiWrLGndHmgQKqOuDHzePR/WpEqoRBLe3k91imAy84D8fNgzZ8KqqkLirTVw3l5LoMfSKcXs2H8nQj0/BkKaEcg7Svc3TuLMrSGF2tpaY955d3HUMOc5fkZyWgpfXSrlInLnPBQ8eD8U1apOtcEYMQzW0BuR2r4z5Bq5dQas8eMQeMzMJ1sRnGlnYCYLwasTrR6ftV8rWegpefw3jZ9vDAGuHTCgxAzsRw1pDulOvcoLYFeOgz2lGvaEcbAmT4IsHhiGifO/ewGJlf8ItarHIjMvAKW0/SZKM+nSiaisy1EzN2IpgzlR+Y+MKnsvBLh04NibDSEfVkpG076hfafLRa+2qybAHD0C7u4GmP37wyguCn3CbToCd+cn8HbshrdnHxCNwp40AXZ1FayywfCPf4ngVCvtl+ZDK0tn6C70M/xCSbMcUtJXrnhXAxRLS0cvMCAXUPQc0Cr+SrUdzxpg9XhYFSMR/9PfkFq1BsZNQ2GUFCFSNR7msKEsrlrg7toHb/NOuJ8fZKE4hEDHI3L7LRB9ekM1HkXQyhCnHU2rXZcSWbzS/HXJ5vryA2NPRa2db+DeqLSrvbA60RNyXHQeeyIBjhsF598fwv2gHkZZCazRw+nB58J7ZHoNVIwlYfMJuHW74W7bxfAT57xBiEyeCLOqAkEqheDYaaizCcqMAEOQ2fxsYToMqXXGgoFV0RttuTgizNE65+pyMzdASnASbW/cSDgbdsA/dBTWlCqYQ4rR/uxfkFq3HebY4YjOmgq7phLo2wdu/WdwN+6Et/1j+OfaEamZgOjsaaRRHvLwD12wz1CaF/ONCcuhFOvMIu4BgU4D/AWhSeqe7OZrdZCIbvqeedeF06kzBL0Twb4m2ItmIbboVhR8vxaRiWMRf/VfDOQ74C1/nUB3I3rPN6nyGlgjyriRCXSud+E1NIZkOycuJZigA1GgZUxmBBZogJe4tL1oKnoj+viRASwtKNLwW9rgfrwP/hnamWnCpGrNkWV8jiJIePAP0kb3NkIxDCE/RocbDjm4hPw1rc68DdKjP/hhbuI4I7iCyc7uzzbKp/eFoOiJlLbSIPUjJUhiBDIU0QfuQt6d09gXILWpHomX3oazfQ/BRBGZPhGx++ZRamOhTp9hUN+K5CvvwDt0BDBIWztOpjFdCpgso0Srefqs4RcXqFMu+YlQQplZXe5KA+JOtQS1ejVYOo7Iz0PeAwtgFF3HsNOfjrGHan0fzpZPoOIO7W4Mgc2B9Y3RzNsWkm9sRnLlOrgNTaTDHVqRcJOduekjl8/Dl6OQNDc1ljkjy5saJTuJmkLRYsnRWBeGoDikXA2skDn4BiAvQu8uDz3z7C9ehvMebZFZxhwyENFHZiN2Vw1ErwJ4Hx9E+/P/hPMR02R7ksC4YX3ayqE0LT9XwKPJtZjLsCz4kfe9Xb4pE4ZErNsqJmN/BGhNGYPot6YxY0xgTvaQfHMb4stp7PsPQ/bvh9iSOYjdexvM4cXMJCcR/8O7cKhS7UzaNkOpaWXkAMfeMDvRStrdIDiowzpSvvw8ZoqDRmBU+BzJ2bSKacwiYiGPzLV6gtPnwiIi+fcP4H16BJG5NYh9dwbsaWOgGJDbX94AZ+UmeJ81X5BYNE26GxZ6UOM26BKuCo46QrSEALfG2hpvc69fG5VWhRsw0afJXPyvPVzvnmJ2Nzcg/tf/MB+PQGz+JFjTxsKuvYXqrIag6hKvbUPq1S2MgwcoJVKzYmlaPQDLMNMApTQ9Vk87mvYPPKLfw3bsxh/Oj0lrlS9UlMrPdHfcmXcQu3sqRO98prltzB5nkb90IfJ+MDuUYgj8v4cQ/+N6OspeBPEU0672vA4WHbR6erB4RjEDefSc8h4qPvjc66EE9YJ4u/ORUWjttWBWKsU4FQq7EykyS75RxxKflYlupg1l2eE0v7kViVXbkVyxGcHZeChlGBzXNHKqI02i67/eCiOJn1RB/bmks0mPX7S942WPPEj9P0dPNrNlyNm61NES0XZKwHlLpkMO6c94RnXSBoX2Sp2UrgCUBpFpjK5gLdiaUt6Pi5t+u0L3d0hQv9SZ7p8rXXtOTNgLWTfrruwWMidIDidXfkRVJhl2fMY4SlO3nDtLD/X0ryVF7TnJwHnlrS8SqzNzL5Kg7jxW+tMxPBessqVZnlBanVlTMmsJhmj0MO3mahrPSmD14lNy23zXWlx89JdNGXo5uR8t+dk8FrAvRqRVlAxBZqZf+7sOyhFhKE/5jfzCsKS45ZktnbnQzbJb4blZByYVqMP8zHMHdxb1wjJbS+naXroetIXFEsBvZlp7orjlV291RZNTgplJzUWP1+YbxtNSmMMofioiY/09Lsss7+aepiEJzoQM+EGq3lXO0oHHntqQa8ElOR0vfnyKUPZTBsRUnrdMlzXQV0Bzkey5T3/YpI1zkko5QbCGR8Anbzjx5P+6W3VJgHphQ+HPr+uVb90fEfZD9LQSXdRooD5dVoPtiYiWV1g88d/igYkrKDV/vye9l9qc+O9Hnfo182X3rSfaWauai564zVKRb1uQ01gNDTeFaWsAOn9rqCFc2qv+9icJyOSlv17pyOMq/RlY7IbwNySVfK30+GMfZjHI0XFFADPrD/RdNjjPxJiIUTiXoWacC7+ENW9fqURvpiqDYDy+tzHInpSBPOwIfxc1uvF0PFZf0f4oDyKX374WwAz5Vai1R/WuzB+Mgj7n7URvyqpXXhAx240Ez27yfNRNtrYgcQatQ+MT8eCFHJlZfXn3/wNq2dDn04ra9AAAAABJRU5ErkJggg=="><input type="hidden" name="files[assets/sprite-av-white.base64.png]" value="iVBORw0KGgoAAAANSUhEUgAAARwAAAEcCAMAAAAiKvvSAAAC91BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8Y3nl4AAAA/HRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f5qxKNsAAAZKElEQVR4Ae2dBXxUV9rGnwSSmQSrAGU9FViChboX6orU3QWobN1l6u447FZwvirUS5dqoFQhUDyBUJLwLdqSTCB5PmEmk/Ob+865czhzG2rnX7vJu3Pm3D85985Mnn0PHA6Hw+HQEjGXf78wktYNm+5P4MRKJlHVD1vJSZVMoao/NDC6+MVjEACmsxMhYT4v89lpn0OMUQkz8nH+j24JAIxRXBhEDiNp3DA6f1iRxfws/gQogJeX/wg9pPl7h64+HQDZ/daV3HAoMqFo2Pwo09iJME798HAG86OXiI+cEj85XDswK1M5hRu4+XSABFqN54ZC6GgzLulAEh5Rr5u4sBPa88kaTg//xHJIgHHyn/OTQ35UmF6OOFJkFXNu3E6MrAn8FBp6lTHpQBD+N6sf3yPk66a1uiB3L+ewTOTol5WQA1zwo58cRiO5WymnHkkcy+UtIspOq5U8GpKch+rIpAPBCC7rmuaCvMfSAnWf6RGtLwomJwJ/OehS4ieHnHtgBnJe5A2AsoPb+DwEnb8gSagDQVF9dVcxb+HuXiie4pBAciJIJwf5z/nKYf2w1vonYgKNnMXsjCQ73bkIXi7fyBhQB4JhfFzM28tC9oRiL84LJAeZyyFXnGiWwzokEWXOrOK4nS7ArOIQa5BM+6lsQB1AMJ97APvvgZzDO0LHJuZAkccaKzkGhJyuJbSXI46EnFDxJwAidwIo/iRsIUcNgCPeGnXCPffP3BkJZF0RYjS4HPsLcoz6oa1hK2cxuyGJIi6El0GJ1aQOdCe/17v7T+056nj5kxFjPvcMsKwMNXkrD35B3uy9IN+CJG7nc4YLsu7k23d+4exXdx99FPbmXAiG8UkoHuaz9nIiJjmGF4Eko3flGp5IK+cYrmgJResKHglJzoN1JNSBYCifxIEzlxxz6pjX8/AMn029m9V0V6dYsLiLtZwITXIEmheBnYFM5KCY47MAxK7KyJrEj6HhkDJCHQh6xE4+P4QYPaN13SAZzvIe6lbf0m9+kYjPnCM0yamih4qUtw8DsqCjihrK5duH8a2A2FW59SSu7wQdbcaKgySGxE8+7mYFn0EK4emseWqvPDLiN7+4gng59ewi9KCT06/S46bP1r7x7F/JFCpOgIdDN3DlbT3C4aLbK7i+F6wJTYuffN7ez0T5Xi40dobX+7z1SpwXEEmU1dnZyAmIGFlQ+CkTfNwJGRAekjj5umdyoaVoyLyatO9LhTxRg6Bp5UiOfn5RTc3C545EhnQfPK+mZu6z3ZAGoxt/O1AYrxv4dWJ0428HArEuf8VyxCk6HA6Hw+FwOBwOR+QXOnzovJfLamvLXjon9EvN54SHrl83OBRg/hFCy5Gv5SEtZ6xggvLTEBxjvudE+3zOUH47h8/az9/4oc7rfDednexhTGJwNuyQ8aGqfhnmZ5jOzvqy5rnfr814/hH6ycl7P62dYfQwGHZUpj11arHO54CzgK+Z6fwjjIefhvbQ2ZmWxs4ZFJwKK5iChRxDPkfIqc90/hE2UD8kBMkMku/lNZ/MGMUACqAIJdbrRw8//DHjLM/1XDSqGGdVf4AJAssx5nPMcuT8S0iK+Qs78fDTtDAEZLIdoKAUivMYY/URAHDUGsY4W/sZa1UTyDHkc6ScOqRyHsUvc9X8hZ1E+GkIBGy0M4kkt7ghFC8zxhGIczRjTNafHfSQ3AvAvuo/Qg6AZtfw7vDGNzEj8QWN+Ry9nM1I5WWKGICav7STCD9118lRdra4IRRl8TWFBJ+S5FJbOegd6Q31HyEn9t1m/BxTr2hfn/iCpnyOhZwyylwWl6Z5EfgUB+vl8P24nVLP/GtJ8uHGX+c+SpJRvRz/ZYUIqf6TIifCCFjfYVDB+Q2mmpOp+Rzk9+/fAXpq3gHWLc8JrVwFfFANL7WU0SNGkUpWN+Qd9VeZ0ojBJDsTSb2c4k/85PzAb68IKocXtsLEhtKNpCZ/0/O9S/4KPV9XNsNgzvuOjyNn9ReZyXmrHCNvnNNaE3GhtCOX1cdI8BlJLvE+dnKP8o54LtCyak5ORvO1MVPzs8Zq5Rwy+dV2MrmV4Daej9Cza9c8lYtLebN2Walclpq/HL8cX3eYWqSVI+1A8RJjHNWYDI0xCUlwXiu0AlrMTSNnXwAHqP9IOUDzG8h1Ob0Yk8Nj9yU14aQ/bffQ+YAun4PW5ev2QZwDNixrCS8vpV6QJ0Ezfjk+/8MbXTXjM8UOFOcwxpqj427WMsaZSGIVE1Q2wa1c5XOAwz/8/E+AyOck2Hd9zX0FwC4PRdftDcE54lau5i/GL8fAUf/VTDM+vXaaTSQUoXLG+fTRRz9jnLJcJNG/KuGmb1PIUfkcQORzPHT7ily3nvyqKxRi/iUk1fxtxqeHaVvsQIHTKDip6d8+mPM5guw+o8hRfbIhMc/fNH4xk1gXs4MkBtPD07CjioIKWzkyn2OXFTHM3zC+IH/aFjtIItsz+lPZMCPjTTIYJdVJfdb5HCnHZv5yfJOdKfBw6nK1Xk9CYMzJsL7W+Rwpx2L+cnyTnSmHwUvu2ZOXRqNLJp2Zi18lhvk7HA6Hw+FwOBwOh8P9vwMYp+nzOWaCR0yaXo5IFw0lGTyfE2R2lhETC/YYsbC2dsHwnhnIeS2eEFlPkv75nC8HdMzN7TTwa7t8TnA5TAG25I9mghF51nLy3o3ZmeBbxzBuvBgNZA2otsrnNL2csW3kgXTzERUf5lnJUXaaTfSrn8GNB0PRq9o+n6NQ+RxLOWlOgWWHiAPBaCYxHFpKSbIUfnbeE7+L9ORzLgaALmhgYCb5HIXI5wSXQ9Y9lJN8INiDHnpCRyz6UVqAdHYmkdp8zpeI8eMFiZX1tW0+RyHyOVKOTpGMWGj/B190TjoQjKCHoamPjmkpKI3/izF87EymNp8zIDHOc/mIcXkm+RxFbAY/tRz+OEgdQLCQHr6DByo7yg2RaodxO9p8TsfGcUriS6tzJvkcRSnt5JiXVZyp7dWBDIl4iMIDlR3lhrp8Tvz32MAHP0COnqvGiS+tEKOQqP48+nyOQFaDy+GU9uoguBxNPidmBzlrPk8n53w/OfH+PMPe3llEUCzkBFpWA9UBBAvoYZ7lslL5nGg8IXJTyrLq1DjOnPiyKuQSn/48J0SON8opbQI5X/w96UAwXIao7S7IKp+T935sZeWn5HMGJsb5V0PpSk7y6c/T527Zn8d8QQ6+rOoezEk+EPSkhx42t3KVz7m/AOi+JrayBOfw6ywAiC2pGFnf8kyf/jyvjpP9ecy38sBySg8RB+nu5UNsXwSqfM46ckM8AyHzOQOSXwRewbJcU38ew4tAazlB3j7kfUjFv8M2bx9kPqfltFQ7p7G6FxSH1gTK53wCoCC4HBvyRjDBkDAs5ShImZ9JMJjVjZ2Rsq6oscrnmJFyzOEke3oO/S4anTe4BxBIjsrPyHzO15d3DoUKr/zWLp8TnH76cFJw7OXI/EzwfM6vA8Zx+RyHw+FwOBwOh8PhyDwg4/I5DDI9mc+xJkL8kiEjmed/ZD7H3g0Ddf/R9/45diUFK49PE74ZvrvF/lUW+R+Zz7F3Q5iImOcmZvc9U1iZJnzD+hFhu/2rmELwz3vs8zn6hUcNSGKzoS7CN49Xc3pYv39VcDn1SMX0QFM+RxGhvZw6Q12Gb7qWcbh5/6ptLEfmc8wLL7gcbfima3V9kUV/HBs5dbDDkM+Rbgi8s524wbaYz96RCIBIpDc3bzkWcgC0epyMj38pp4NMH755gkNt+uNQ9QIBgH3TydkMe4z5HICNAHxbyMFetTE506eXRnqXolTIaeh50yohBy8JOZrwzZ78zqY/jpITfyLYyTEvK0M+R8rhAV457bJvjsm54IJXzXJ22mEMyPT5kjCjqf1xsrqh9THt03VRUY4IfT6HlP1zfOT0hkT15xH5HI2cG71yet+W3TaNHM+yGtt2J2s5UYbi/WvevPGzZj5yYgg5mnyO7J+jJz6KRPXnyWNNejk3CDmb9kNiWRVcg2sKvHI8rYMwfQpApg/fqD8c0b+mosPUndTkbJaV7J9jcsOIrj/P62PbbY2c/YQcLm3TcEF+LQdA7pR0cvgPkOnDN09ziLZ/Tfkf3thR5GOEHNV/x6J/DhMAkYjHjXj+9u2u0vXnkXKmWt3KqSFt+KZHTX13bf+au/45FPp8jMCqfw4ToDcZSXIjn3/3D2eI/jy6W/mU1sHlpAnfFK3gENv+NQKb/jliPUk35ucP9CLQUJfhm2ejfD9klY9hCsb+Of52pBvT8xvePlQZOrisNLzxFOEb1j2ba5GPscj/kLC5FtvncyI0b/jNin5I4njDRxYifPNMV4v9q6zyPySMRIQbu3xOBNsYmY+xaE4kIJvm+R0Oh8PhcDgcDofD0eTscr2LB/mRX8Jzgb89PjcanfvoX4N3kanqF7huQRPncx7g7Ba4tJpxNl4EeyrpoTJovUncEBmw44/1e+FScvwB4fCBk8iL7MNFFASti6fvDUxP+heZkRtmsvSu4hv4WzUvb/zqx79Yh4vkliKaOhRp5DQei6efDvRO+heZaT5nWJHt0nuDZ+NxjgfaXf2PtsBkPmL1GS+ZXg6ZXg6ZXg7JlB+dzPM5w8N2S285d8ZcHoB25eTytjiIs5tATgJDXf/41B+dAPmc6WGrpVfLHEQZxtUkeRXyWPOLkyMJks8Zls4NIdjM5qhlGP+Iy/GPiMj9q+yWDRTbWo7M5xQhFd+RV7AAc3gA2i4ny3Y05meaSs7C/ZodaC9HLivSmM8ZYiPnTZ6FxzgCaHvVVTua8zNNtaz2A9AUcgQyAiLlaG7lHTfXFkGPstHEcpoDyA68rIxy8lhjI2fHjfX74CkuLYBtLM3+Vp5GzgEADm4SOVGGMpaD+zmnZfhjVvY2yFH7VzWJnEUH5hy8JMCyAqhIzecoZD7HJCdvNs9Gqze56TQfOYrpmE6tHEGAehPIGcYnoRD5HNOtHNj5agDZD3DjXw1ySiOlWjlV/kmAwPXgy6rIk8+p757R+68JfAAAmjezfhHYr9I/CRC8HlQOhifncwZn9s79QK7MBzpwvVVEhIQkeN2cH7IZLTxd5XP4QSjDz3yK+epOf5rKly0iIk0vR/1UyQlYjBYeXs849YNDmX5a2GU1Sa7uGGhjtOD1pqBoSDyf0x2Zs+vL69ZM3i1Y76HgdYfD4XA4HA6Hw+H4rbLfHwDgj/vCkcL2q2rH7bvf+NqK1vb7SwWtb3tkwMQQMnmWCZ4w7y8VvN70yP2zEow5Lis1YGIImeT12cwEm44La/eXmnXZbs3F/lKeukLUzftTBaf7tHZJXfBJeHmd78Xt3A2QxYWGj87E9+6fVcskosV3wcsw8ma5v5Soe+zY708l4ikeKIHkA8722IGXvPfjdu4hcFM5NxymF8EYqXK+oWCWWBMkv20n9pcSdQ+nWu9PFUxOu9nKTod5JCGI7yeRPYEAWo7l+s42ct6RvxiaKveXuvlbZUfuLxWvC1LqF0MhH6+XY0m7OZzTPuFmdikhyZsW221jAgBkjeNnPnK0y+p5KWe02F9qFtol2ZH7S52nHq1GEPUvgcaqfHwwOYr2MTtxN9+20+3tlR+3E++e02olj956OXlfSDkzwkjiZV4Gjx2xv9TLKXJkfYBHjnx8sGWl7Gw8pMENUKAfYFpeQ/ecW/nCVsvJfoVSDidnQYEy7gaPHbG/VFmKHFnv6JEjHx9MjrKzxc1cNUXtANPyMZEHoBsXb7Wcp5gqh096UnPN4bEjtlCqTZEj67keOfLxejn2+LkBqew0n3Rj7OmlkbxhGzZo5Typk/OEODll55crZyc/N2CynT0QYq2UM4ykfllNZgoTssT+Uh47nbnEsKxEvZNXTqGq2y8rYMouadwc0T6dnHdjKwtFXCTlbPCTg/BMCj4Lyf2lPHau4CRvXcqR9YFeOVdyUgA5rI6Efd1ES9r7XpDJvLidAXxOyllPkmt0cvCC9lYu95dSdrJn80xPPVXOmfLxSo7cn8p+WZFc3EfvBm2/ZUn7nUt9szlxO80mHC7lDEm6lAg570o5b+j2l1J27mJZrqgLZF09Xu1PFVDOCdJNSeJ60/YblpQRPnaQsAMpJzx43donE5MyvX34Qre/lLJDniTrgpPM+1MFkFN9V1jvJmGHTJPN+dP6LXZs3njeXRxlEtUf3e6/v1T2XeTTSKl7EHXD/lS2cqbsDMm/lRvsXEbSP5sTWcX6ZDtVpDEdFD5hMxPUHpkD+O0v1fmK2WJ/KVVXyLp5f6rAdJMfWeiJAOQHXd7lFJEAMaWDnmWCxyAw7C8VpL7tGdULyHv9MNixfVXt2H33GRP9vpVpf6mg9V/vB+wd9sI2wOFwOBwOh8PhcDi2v3Z2B/yOsOh/s//z1dx0ym9qi6+TdPmd/tb9b1oN+posu+MPTfH8wXcYE/kcA3b5HVAAQc8RG1g35fhsSII/v4QZ24kA5IwuMGHO71j0z8m7oJhccc9foWUGkygGSIC0e356iWTmRuZzxNDq9GzkkOnlnLo67c5r9NBEcsa2EQ/VuWnM5xRmIofMSE5V+lXBOHNmB5NjWFYsO8QgJ0JS5nPMTxxYDgkBKeWcD1xgI6c+jRz9/mJ1D+UkjnzdsDGfc+xPLgcKezlzAKAkoJze0+l7KyfJLzrrh5O7W93KF/2XlV4OEwSVQ2rkzDbLYQJ/OSThB2P8OMgsR+RzgsuRy8peDi8ALqaFnDpoiBjkkFPbG+XE8jm12/CaoyGlXFJicUHOWM4Us5wbRDzIVk5veAgqx0NwOaTvshoIGOXsh+5cpCnG9+ddb5QTYcRSTvWgVq2vqPGXs/SG7qFQ9xuWbr2czdKLWQ6/+DvMcqYCt/N5rZyhJPVy5GY3Vv1vBsUjSb5yZuQjTv5MezlyQfnKqXswR5b1u1u1ruCR0LHeLEfZseh/0woA2vjKUYPdnaGcCI1ySrf2RWD2JH4MLetIco2hQ4u0Y+5/0xoAtsvwmlNFDeXivDwAmb99aD2Z6zpBy2CSfEo2iDHLSQt5BQBc7TP/YibxiZAjnl/ZP8Esx5oIgdsruO4Q6EnseKiDCdSyspBTc2Wb7a6OBps/EwRrdWz+yOLjTrBH/txY9ceRVASX0zSb2P/riKCCGbHof6NbFxV9f62fjZrpjUxxOBwOh8PhcDgcjhxx+PsidM7Ly4B5r5wXhoZepT2QYI+lB8GH7OtbIEOYBH4RyP42wA/kitORwsW1HIwEIxg938fNP/lBi9+gnA5V/HLAbkDHgV+RQ5uJk36CfCD7uDFLaqOLXzym2WPkI9nQ0GfChAkDmjxVJpNlxrpm/67+Vm7Q7eKshInLajgUHiYzel7XmUxQXHhJLScgOEHSTZXmusX+XSQStBkHyRmV3aBArxp6V9ZplQcd/gPLb+4aCnW7ZQU3HHrof+TSa/nOGMS49f0G7rBbNhQAllsf/DCSitHVJA0D+MjpVaYqsr/NXWhgAMtDSKZ11x84pkVCw3huKNwOgkvIfQHgqdIYtRyyjeWcgyeZ4FFclqGcnIfqSAjO4RdZyQKzvxH9bbJmckyW+mI8P4VkxspNI9HIfnUV7YJdcG3lzETePJYcn9+izzzODmV9lSIH5q/R+Qvd5F7mpY2TKECMK0R/m+NY3gJgHCQ151H04L1TN7REAy0W8gRsWzmX4EaWtAaANvN4DQZmIufyjdrJLeOuahJ3A0AhS5HMGN6cKHMTgNv4PLw8w11P4SVoYChHwkrOyf9Nwar+dnJ2xVc8HietquqHvpyFTvZy2k8VA0tUNSwCLEvYFTHCn8YvTj24CB7Cqz9C7n+KEecYLmllJyfmRlBlJycHUeZjFVmJlqxG7raUU8sQAGRN5gOIl2vg4eyYs8HsBgA7fl9/EOzkMMFq35OXZ6ST0wJVZEWmcoBBfsuqo5rk7QDQhaW67aMe4bgsrZzpvOqCCx7l0zGBE/kQMpSz/SM1GcrZDV+yD/pVVvRBf87E33/CC/JLHNQ4yT9D199mMbsBGMiPQohRxIVIpiMb+E8IOIvfhDKVA/zthfqMtni6FNdxXhsA2H4+r8agjOQg50HNrfxsfuO9lc/mWUjmRd4CYHPjrG7nc0jmYV51xBae4Jn485poD2QuB9j93UzkfIHwHM7r27Jl//mxW/nXmckBDtG8CFzOAQBwp+pvsywXyRzDFS3VJSkl/JNTsSwbAHbaNA3PMVoaY1qmcvZ8T3fy8ljWeQmeZoInMYCZykGbsZCctrIzFDg8ypPhpZjjs5AgS4Z/er49CHEefbPNXW83MCozObuMIzOSU/0CFf+qtpFjpj2KBiXOvtlVUT4DQeEGjm+FOK0ncX0nBEQvp93TtWzEmOIw1I37d1nQYRW/vaIQ6HJ1iba/zaEbuPK2HuFw0e0VXN8Leo4eM2bMhQHkrCcVxv2vDHXz/l0WnLKs8cOuZSdCQ+GnTOAf/skeyffyYc8qplCJXxS5Z05aAsyeeEYu9Bz9/KKamoXPHQl/sq/OxA36V6W46QuHw+FwOBwOh8PhcDgcv3H0+RWHMb/ioAY4nBwnJwgeFVTfcTg5To6T0yTQg5PjfnKcHCfHydnmmPMrDnN+xeFwOBxNzP8D/QuHYtwuqKMAAAAASUVORK5CYII="><input type="hidden" name="files[assets/material.min.js]" value="/**
 * material-design-lite - Material Design Components in CSS, JS and HTML
 * @version v1.0.6
 * @license Apache-2.0
 * @copyright 2015 Google, Inc.
 * @link https://github.com/google/material-design-lite
 */! function() {
    &quot;use strict&quot;;

    function e(e, t) {
        if (e) {
            if (t.element_.classList.contains(t.CssClasses_.MDL_JS_RIPPLE_EFFECT)) {
                var s = document.createElement(&quot;span&quot;);
                s.classList.add(t.CssClasses_.MDL_RIPPLE_CONTAINER), s.classList.add(t.CssClasses_.MDL_JS_RIPPLE_EFFECT);
                var i = document.createElement(&quot;span&quot;);
                i.classList.add(t.CssClasses_.MDL_RIPPLE), s.appendChild(i), e.appendChild(s)
            }
            e.addEventListener(&quot;click&quot;, function(s) {
                s.preventDefault();
                var i = e.href.split(&quot;#&quot;)[1],
                    n = t.element_.querySelector(&quot;#&quot; + i);
                t.resetTabState_(), t.resetPanelState_(), e.classList.add(t.CssClasses_.ACTIVE_CLASS), n.classList.add(t.CssClasses_.ACTIVE_CLASS)
            })
        }
    }
    function t(e, t, s, i) {
        if (i.tabBar_.classList.contains(i.CssClasses_.JS_RIPPLE_EFFECT)) {
            var n = document.createElement(&quot;span&quot;);
            n.classList.add(i.CssClasses_.RIPPLE_CONTAINER), n.classList.add(i.CssClasses_.JS_RIPPLE_EFFECT);
            var a = document.createElement(&quot;span&quot;);
            a.classList.add(i.CssClasses_.RIPPLE), n.appendChild(a), e.appendChild(n)
        }
        e.addEventListener(&quot;click&quot;, function(n) {
            n.preventDefault();
            var a = e.href.split(&quot;#&quot;)[1],
                l = i.content_.querySelector(&quot;#&quot; + a);
            i.resetTabState_(t), i.resetPanelState_(s), e.classList.add(i.CssClasses_.IS_ACTIVE), l.classList.add(i.CssClasses_.IS_ACTIVE)
        })
    }
    var s = {
        upgradeDom: function(e, t) {},
        upgradeElement: function(e, t) {},
        upgradeElements: function(e) {},
        upgradeAllRegistered: function() {},
        registerUpgradedCallback: function(e, t) {},
        register: function(e) {},
        downgradeElements: function(e) {}
    };
    s = function() {
        function e(e, t) {
            for (var s = 0; s < p.length; s++) if (p[s].className === e) return &quot;undefined&quot; != typeof t &amp;&amp; (p[s] = t), p[s];
            return !1
        }
        function t(e) {
            var t = e.getAttribute(&quot;data-upgraded&quot;);
            return null === t ? [&quot;&quot;] : t.split(&quot;,&quot;)
        }
        function s(e, s) {
            var i = t(e);
            return -1 !== i.indexOf(s)
        }
        function i(t, s) {
            if (&quot;undefined&quot; == typeof t &amp;&amp; &quot;undefined&quot; == typeof s) for (var a = 0; a < p.length; a++) i(p[a].className, p[a].cssClass);
            else {
                var l = t;
                if (&quot;undefined&quot; == typeof s) {
                    var o = e(l);
                    o &amp;&amp; (s = o.cssClass)
                }
                for (var r = document.querySelectorAll(&quot;.&quot; + s), d = 0; d < r.length; d++) n(r[d], l)
            }
        }
        function n(i, n) {
            if (!(&quot;object&quot; == typeof i &amp;&amp; i instanceof Element)) throw new Error(&quot;Invalid argument provided to upgrade MDL element.&quot;);
            var a = t(i),
                l = [];
            if (n) s(i, n) || l.push(e(n));
            else {
                var o = i.classList;
                p.forEach(function(e) {
                    o.contains(e.cssClass) &amp;&amp; -1 === l.indexOf(e) &amp;&amp; !s(i, e.className) &amp;&amp; l.push(e)
                })
            }
            for (var r, d = 0, _ = l.length; _ > d; d++) {
                if (r = l[d], !r) throw new Error(&quot;Unable to find a registered component for the given class.&quot;);
                a.push(r.className), i.setAttribute(&quot;data-upgraded&quot;, a.join(&quot;,&quot;));
                var h = new r.classConstructor(i);
                h[C] = r, c.push(h);
                for (var u = 0, m = r.callbacks.length; m > u; u++) r.callbacks[u](i);
                r.widget &amp;&amp; (i[r.className] = h);
                var E = document.createEvent(&quot;Events&quot;);
                E.initEvent(&quot;mdl-componentupgraded&quot;, !0, !0), i.dispatchEvent(E)
            }
        }
        function a(e) {
            Array.isArray(e) || (e = &quot;function&quot; == typeof e.item ? Array.prototype.slice.call(e) : [e]);
            for (var t, s = 0, i = e.length; i > s; s++) t = e[s], t instanceof HTMLElement &amp;&amp; (n(t), t.children.length > 0 &amp;&amp; a(t.children))
        }
        function l(t) {
            var s = &quot;undefined&quot; == typeof t.widget &amp;&amp; &quot;undefined&quot; == typeof t.widget,
                i = !0;
            s || (i = t.widget || t.widget);
            var n = {
                classConstructor: t.constructor || t.constructor,
                className: t.classAsString || t.classAsString,
                cssClass: t.cssClass || t.cssClass,
                widget: i,
                callbacks: []
            };
            if (p.forEach(function(e) {
                if (e.cssClass === n.cssClass) throw new Error(&quot;The provided cssClass has already been registered: &quot; + e.cssClass);
                if (e.className === n.className) throw new Error(&quot;The provided className has already been registered&quot;)
            }), t.constructor.prototype.hasOwnProperty(C)) throw new Error(&quot;MDL component classes must not have &quot; + C + &quot; defined as a property.&quot;);
            var a = e(t.classAsString, n);
            a || p.push(n)
        }
        function o(t, s) {
            var i = e(t);
            i &amp;&amp; i.callbacks.push(s)
        }
        function r() {
            for (var e = 0; e < p.length; e++) i(p[e].className)
        }
        function d(e) {
            for (var t = 0; t < c.length; t++) {
                var s = c[t];
                if (s.element_ === e) return s
            }
        }
        function _(e) {
            if (e &amp;&amp; e[C].classConstructor.prototype.hasOwnProperty(u)) {
                e[u]();
                var t = c.indexOf(e);
                c.splice(t, 1);
                var s = e.element_.getAttribute(&quot;data-upgraded&quot;).split(&quot;,&quot;),
                    i = s.indexOf(e[C].classAsString);
                s.splice(i, 1), e.element_.setAttribute(&quot;data-upgraded&quot;, s.join(&quot;,&quot;));
                var n = document.createEvent(&quot;Events&quot;);
                n.initEvent(&quot;mdl-componentdowngraded&quot;, !0, !0), e.element_.dispatchEvent(n)
            }
        }
        function h(e) {
            var t = function(e) {
                _(d(e))
            };
            if (e instanceof Array || e instanceof NodeList) for (var s = 0; s < e.length; s++) t(e[s]);
            else {
                if (!(e instanceof Node)) throw new Error(&quot;Invalid argument provided to downgrade MDL nodes.&quot;);
                t(e)
            }
        }
        var p = [],
            c = [],
            u = &quot;mdlDowngrade&quot;,
            C = &quot;mdlComponentConfigInternal_&quot;;
        return {
            upgradeDom: i,
            upgradeElement: n,
            upgradeElements: a,
            upgradeAllRegistered: r,
            registerUpgradedCallback: o,
            register: l,
            downgradeElements: h
        }
    }(), s.ComponentConfigPublic, s.ComponentConfig, s.Component, s.upgradeDom = s.upgradeDom, s.upgradeElement = s.upgradeElement, s.upgradeElements = s.upgradeElements, s.upgradeAllRegistered = s.upgradeAllRegistered, s.registerUpgradedCallback = s.registerUpgradedCallback, s.register = s.register, s.downgradeElements = s.downgradeElements, window.componentHandler = s, window.componentHandler = s, window.addEventListener(&quot;load&quot;, function() {
        &quot;classList&quot; in document.createElement(&quot;div&quot;) &amp;&amp; &quot;querySelector&quot; in document &amp;&amp; &quot;addEventListener&quot; in window &amp;&amp; Array.prototype.forEach ? (document.documentElement.classList.add(&quot;mdl-js&quot;), s.upgradeAllRegistered()) : (s.upgradeElement = function() {}, s.register = function() {})
    }), Date.now || (Date.now = function() {
        return (new Date).getTime()
    }, Date.now = Date.now);
    for (var i = [&quot;webkit&quot;, &quot;moz&quot;], n = 0; n < i.length &amp;&amp; !window.requestAnimationFrame; ++n) {
        var a = i[n];
        window.requestAnimationFrame = window[a + &quot;RequestAnimationFrame&quot;], window.cancelAnimationFrame = window[a + &quot;CancelAnimationFrame&quot;] || window[a + &quot;CancelRequestAnimationFrame&quot;], window.requestAnimationFrame = window.requestAnimationFrame, window.cancelAnimationFrame = window.cancelAnimationFrame
    }
    if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {
        var l = 0;
        window.requestAnimationFrame = function(e) {
            var t = Date.now(),
                s = Math.max(l + 16, t);
            return setTimeout(function() {
                e(l = s)
            }, s - t)
        }, window.cancelAnimationFrame = clearTimeout, window.requestAnimationFrame = window.requestAnimationFrame, window.cancelAnimationFrame = window.cancelAnimationFrame
    }
    var o = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialButton = o, o.prototype.Constant_ = {}, o.prototype.CssClasses_ = {
        RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_CONTAINER: &quot;mdl-button__ripple-container&quot;,
        RIPPLE: &quot;mdl-ripple&quot;
    }, o.prototype.blurHandler_ = function(e) {
        e &amp;&amp; this.element_.blur()
    }, o.prototype.disable = function() {
        this.element_.disabled = !0
    }, o.prototype.disable = o.prototype.disable, o.prototype.enable = function() {
        this.element_.disabled = !1
    }, o.prototype.enable = o.prototype.enable, o.prototype.init = function() {
        if (this.element_) {
            if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
                var e = document.createElement(&quot;span&quot;);
                e.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleElement_ = document.createElement(&quot;span&quot;), this.rippleElement_.classList.add(this.CssClasses_.RIPPLE), e.appendChild(this.rippleElement_), this.boundRippleBlurHandler = this.blurHandler_.bind(this), this.rippleElement_.addEventListener(&quot;mouseup&quot;, this.boundRippleBlurHandler), this.element_.appendChild(e)
            }
            this.boundButtonBlurHandler = this.blurHandler_.bind(this), this.element_.addEventListener(&quot;mouseup&quot;, this.boundButtonBlurHandler), this.element_.addEventListener(&quot;mouseleave&quot;, this.boundButtonBlurHandler)
        }
    }, o.prototype.mdlDowngrade_ = function() {
        this.rippleElement_ &amp;&amp; this.rippleElement_.removeEventListener(&quot;mouseup&quot;, this.boundRippleBlurHandler), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundButtonBlurHandler), this.element_.removeEventListener(&quot;mouseleave&quot;, this.boundButtonBlurHandler)
    }, o.prototype.mdlDowngrade = o.prototype.mdlDowngrade_, o.prototype.mdlDowngrade = o.prototype.mdlDowngrade, s.register({
        constructor: o,
        classAsString: &quot;MaterialButton&quot;,
        cssClass: &quot;mdl-js-button&quot;,
        widget: !0
    });
    var r = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialCheckbox = r, r.prototype.Constant_ = {
        TINY_TIMEOUT: .001
    }, r.prototype.CssClasses_ = {
        INPUT: &quot;mdl-checkbox__input&quot;,
        BOX_OUTLINE: &quot;mdl-checkbox__box-outline&quot;,
        FOCUS_HELPER: &quot;mdl-checkbox__focus-helper&quot;,
        TICK_OUTLINE: &quot;mdl-checkbox__tick-outline&quot;,
        RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        RIPPLE_CONTAINER: &quot;mdl-checkbox__ripple-container&quot;,
        RIPPLE_CENTER: &quot;mdl-ripple--center&quot;,
        RIPPLE: &quot;mdl-ripple&quot;,
        IS_FOCUSED: &quot;is-focused&quot;,
        IS_DISABLED: &quot;is-disabled&quot;,
        IS_CHECKED: &quot;is-checked&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;
    }, r.prototype.onChange_ = function(e) {
        this.updateClasses_()
    }, r.prototype.onFocus_ = function(e) {
        this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
    }, r.prototype.onBlur_ = function(e) {
        this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
    }, r.prototype.onMouseUp_ = function(e) {
        this.blur_()
    }, r.prototype.updateClasses_ = function() {
        this.checkDisabled(), this.checkToggleState()
    }, r.prototype.blur_ = function() {
        window.setTimeout(function() {
            this.inputElement_.blur()
        }.bind(this), this.Constant_.TINY_TIMEOUT)
    }, r.prototype.checkToggleState = function() {
        this.inputElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
    }, r.prototype.checkToggleState = r.prototype.checkToggleState, r.prototype.checkDisabled = function() {
        this.inputElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
    }, r.prototype.checkDisabled = r.prototype.checkDisabled, r.prototype.disable = function() {
        this.inputElement_.disabled = !0, this.updateClasses_()
    }, r.prototype.disable = r.prototype.disable, r.prototype.enable = function() {
        this.inputElement_.disabled = !1, this.updateClasses_()
    }, r.prototype.enable = r.prototype.enable, r.prototype.check = function() {
        this.inputElement_.checked = !0, this.updateClasses_()
    }, r.prototype.check = r.prototype.check, r.prototype.uncheck = function() {
        this.inputElement_.checked = !1, this.updateClasses_()
    }, r.prototype.uncheck = r.prototype.uncheck, r.prototype.init = function() {
        if (this.element_) {
            this.inputElement_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.INPUT);
            var e = document.createElement(&quot;span&quot;);
            e.classList.add(this.CssClasses_.BOX_OUTLINE);
            var t = document.createElement(&quot;span&quot;);
            t.classList.add(this.CssClasses_.FOCUS_HELPER);
            var s = document.createElement(&quot;span&quot;);
            if (s.classList.add(this.CssClasses_.TICK_OUTLINE), e.appendChild(s), this.element_.appendChild(t), this.element_.appendChild(e), this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
                this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), this.rippleContainerElement_ = document.createElement(&quot;span&quot;), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER), this.boundRippleMouseUp = this.onMouseUp_.bind(this), this.rippleContainerElement_.addEventListener(&quot;mouseup&quot;, this.boundRippleMouseUp);
                var i = document.createElement(&quot;span&quot;);
                i.classList.add(this.CssClasses_.RIPPLE), this.rippleContainerElement_.appendChild(i), this.element_.appendChild(this.rippleContainerElement_)
            }
            this.boundInputOnChange = this.onChange_.bind(this), this.boundInputOnFocus = this.onFocus_.bind(this), this.boundInputOnBlur = this.onBlur_.bind(this), this.boundElementMouseUp = this.onMouseUp_.bind(this), this.inputElement_.addEventListener(&quot;change&quot;, this.boundInputOnChange), this.inputElement_.addEventListener(&quot;focus&quot;, this.boundInputOnFocus), this.inputElement_.addEventListener(&quot;blur&quot;, this.boundInputOnBlur), this.element_.addEventListener(&quot;mouseup&quot;, this.boundElementMouseUp), this.updateClasses_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
        }
    }, r.prototype.mdlDowngrade_ = function() {
        this.rippleContainerElement_ &amp;&amp; this.rippleContainerElement_.removeEventListener(&quot;mouseup&quot;, this.boundRippleMouseUp), this.inputElement_.removeEventListener(&quot;change&quot;, this.boundInputOnChange), this.inputElement_.removeEventListener(&quot;focus&quot;, this.boundInputOnFocus), this.inputElement_.removeEventListener(&quot;blur&quot;, this.boundInputOnBlur), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundElementMouseUp)
    }, r.prototype.mdlDowngrade = r.prototype.mdlDowngrade_, r.prototype.mdlDowngrade = r.prototype.mdlDowngrade, s.register({
        constructor: r,
        classAsString: &quot;MaterialCheckbox&quot;,
        cssClass: &quot;mdl-js-checkbox&quot;,
        widget: !0
    });
    var d = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialIconToggle = d, d.prototype.Constant_ = {
        TINY_TIMEOUT: .001
    }, d.prototype.CssClasses_ = {
        INPUT: &quot;mdl-icon-toggle__input&quot;,
        JS_RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        RIPPLE_CONTAINER: &quot;mdl-icon-toggle__ripple-container&quot;,
        RIPPLE_CENTER: &quot;mdl-ripple--center&quot;,
        RIPPLE: &quot;mdl-ripple&quot;,
        IS_FOCUSED: &quot;is-focused&quot;,
        IS_DISABLED: &quot;is-disabled&quot;,
        IS_CHECKED: &quot;is-checked&quot;
    }, d.prototype.onChange_ = function(e) {
        this.updateClasses_()
    }, d.prototype.onFocus_ = function(e) {
        this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
    }, d.prototype.onBlur_ = function(e) {
        this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
    }, d.prototype.onMouseUp_ = function(e) {
        this.blur_()
    }, d.prototype.updateClasses_ = function() {
        this.checkDisabled(), this.checkToggleState()
    }, d.prototype.blur_ = function() {
        window.setTimeout(function() {
            this.inputElement_.blur()
        }.bind(this), this.Constant_.TINY_TIMEOUT)
    }, d.prototype.checkToggleState = function() {
        this.inputElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
    }, d.prototype.checkToggleState = d.prototype.checkToggleState, d.prototype.checkDisabled = function() {
        this.inputElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
    }, d.prototype.checkDisabled = d.prototype.checkDisabled, d.prototype.disable = function() {
        this.inputElement_.disabled = !0, this.updateClasses_()
    }, d.prototype.disable = d.prototype.disable, d.prototype.enable = function() {
        this.inputElement_.disabled = !1, this.updateClasses_()
    }, d.prototype.enable = d.prototype.enable, d.prototype.check = function() {
        this.inputElement_.checked = !0, this.updateClasses_()
    }, d.prototype.check = d.prototype.check, d.prototype.uncheck = function() {
        this.inputElement_.checked = !1, this.updateClasses_()
    }, d.prototype.uncheck = d.prototype.uncheck, d.prototype.init = function() {
        if (this.element_) {
            if (this.inputElement_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.INPUT), this.element_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT)) {
                this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), this.rippleContainerElement_ = document.createElement(&quot;span&quot;), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleContainerElement_.classList.add(this.CssClasses_.JS_RIPPLE_EFFECT), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER), this.boundRippleMouseUp = this.onMouseUp_.bind(this), this.rippleContainerElement_.addEventListener(&quot;mouseup&quot;, this.boundRippleMouseUp);
                var e = document.createElement(&quot;span&quot;);
                e.classList.add(this.CssClasses_.RIPPLE), this.rippleContainerElement_.appendChild(e), this.element_.appendChild(this.rippleContainerElement_)
            }
            this.boundInputOnChange = this.onChange_.bind(this), this.boundInputOnFocus = this.onFocus_.bind(this), this.boundInputOnBlur = this.onBlur_.bind(this), this.boundElementOnMouseUp = this.onMouseUp_.bind(this), this.inputElement_.addEventListener(&quot;change&quot;, this.boundInputOnChange), this.inputElement_.addEventListener(&quot;focus&quot;, this.boundInputOnFocus), this.inputElement_.addEventListener(&quot;blur&quot;, this.boundInputOnBlur), this.element_.addEventListener(&quot;mouseup&quot;, this.boundElementOnMouseUp), this.updateClasses_(), this.element_.classList.add(&quot;is-upgraded&quot;)
        }
    }, d.prototype.mdlDowngrade_ = function() {
        this.rippleContainerElement_ &amp;&amp; this.rippleContainerElement_.removeEventListener(&quot;mouseup&quot;, this.boundRippleMouseUp), this.inputElement_.removeEventListener(&quot;change&quot;, this.boundInputOnChange), this.inputElement_.removeEventListener(&quot;focus&quot;, this.boundInputOnFocus), this.inputElement_.removeEventListener(&quot;blur&quot;, this.boundInputOnBlur), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundElementOnMouseUp)
    }, d.prototype.mdlDowngrade = d.prototype.mdlDowngrade_, d.prototype.mdlDowngrade = d.prototype.mdlDowngrade, s.register({
        constructor: d,
        classAsString: &quot;MaterialIconToggle&quot;,
        cssClass: &quot;mdl-js-icon-toggle&quot;,
        widget: !0
    });
    var _ = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialMenu = _, _.prototype.Constant_ = {
        TRANSITION_DURATION_SECONDS: .3,
        TRANSITION_DURATION_FRACTION: .8,
        CLOSE_TIMEOUT: 150
    }, _.prototype.Keycodes_ = {
        ENTER: 13,
        ESCAPE: 27,
        SPACE: 32,
        UP_ARROW: 38,
        DOWN_ARROW: 40
    }, _.prototype.CssClasses_ = {
        CONTAINER: &quot;mdl-menu__container&quot;,
        OUTLINE: &quot;mdl-menu__outline&quot;,
        ITEM: &quot;mdl-menu__item&quot;,
        ITEM_RIPPLE_CONTAINER: &quot;mdl-menu__item-ripple-container&quot;,
        RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        RIPPLE: &quot;mdl-ripple&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;,
        IS_VISIBLE: &quot;is-visible&quot;,
        IS_ANIMATING: &quot;is-animating&quot;,
        BOTTOM_LEFT: &quot;mdl-menu--bottom-left&quot;,
        BOTTOM_RIGHT: &quot;mdl-menu--bottom-right&quot;,
        TOP_LEFT: &quot;mdl-menu--top-left&quot;,
        TOP_RIGHT: &quot;mdl-menu--top-right&quot;,
        UNALIGNED: &quot;mdl-menu--unaligned&quot;
    }, _.prototype.init = function() {
        if (this.element_) {
            var e = document.createElement(&quot;div&quot;);
            e.classList.add(this.CssClasses_.CONTAINER), this.element_.parentElement.insertBefore(e, this.element_), this.element_.parentElement.removeChild(this.element_), e.appendChild(this.element_), this.container_ = e;
            var t = document.createElement(&quot;div&quot;);
            t.classList.add(this.CssClasses_.OUTLINE), this.outline_ = t, e.insertBefore(t, this.element_);
            var s = this.element_.getAttribute(&quot;for&quot;),
                i = null;
            s &amp;&amp; (i = document.getElementById(s), i &amp;&amp; (this.forElement_ = i, i.addEventListener(&quot;click&quot;, this.handleForClick_.bind(this)), i.addEventListener(&quot;keydown&quot;, this.handleForKeyboardEvent_.bind(this))));
            var n = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.ITEM);
            this.boundItemKeydown_ = this.handleItemKeyboardEvent_.bind(this), this.boundItemClick_ = this.handleItemClick_.bind(this);
            for (var a = 0; a < n.length; a++) n[a].addEventListener(&quot;click&quot;, this.boundItemClick_), n[a].tabIndex = &quot;-1&quot;, n[a].addEventListener(&quot;keydown&quot;, this.boundItemKeydown_);
            if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) for (this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), a = 0; a < n.length; a++) {
                var l = n[a],
                    o = document.createElement(&quot;span&quot;);
                o.classList.add(this.CssClasses_.ITEM_RIPPLE_CONTAINER);
                var r = document.createElement(&quot;span&quot;);
                r.classList.add(this.CssClasses_.RIPPLE), o.appendChild(r), l.appendChild(o), l.classList.add(this.CssClasses_.RIPPLE_EFFECT)
            }
            this.element_.classList.contains(this.CssClasses_.BOTTOM_LEFT) &amp;&amp; this.outline_.classList.add(this.CssClasses_.BOTTOM_LEFT), this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT) &amp;&amp; this.outline_.classList.add(this.CssClasses_.BOTTOM_RIGHT), this.element_.classList.contains(this.CssClasses_.TOP_LEFT) &amp;&amp; this.outline_.classList.add(this.CssClasses_.TOP_LEFT), this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) &amp;&amp; this.outline_.classList.add(this.CssClasses_.TOP_RIGHT), this.element_.classList.contains(this.CssClasses_.UNALIGNED) &amp;&amp; this.outline_.classList.add(this.CssClasses_.UNALIGNED), e.classList.add(this.CssClasses_.IS_UPGRADED)
        }
    }, _.prototype.handleForClick_ = function(e) {
        if (this.element_ &amp;&amp; this.forElement_) {
            var t = this.forElement_.getBoundingClientRect(),
                s = this.forElement_.parentElement.getBoundingClientRect();
            this.element_.classList.contains(this.CssClasses_.UNALIGNED) || (this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT) ? (this.container_.style.right = s.right - t.right + &quot;px&quot;, this.container_.style.top = this.forElement_.offsetTop + this.forElement_.offsetHeight + &quot;px&quot;) : this.element_.classList.contains(this.CssClasses_.TOP_LEFT) ? (this.container_.style.left = this.forElement_.offsetLeft + &quot;px&quot;, this.container_.style.bottom = s.bottom - t.top + &quot;px&quot;) : this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) ? (this.container_.style.right = s.right - t.right + &quot;px&quot;, this.container_.style.bottom = s.bottom - t.top + &quot;px&quot;) : (this.container_.style.left = this.forElement_.offsetLeft + &quot;px&quot;, this.container_.style.top = this.forElement_.offsetTop + this.forElement_.offsetHeight + &quot;px&quot;))
        }
        this.toggle(e)
    }, _.prototype.handleForKeyboardEvent_ = function(e) {
        if (this.element_ &amp;&amp; this.container_ &amp;&amp; this.forElement_) {
            var t = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.ITEM + &quot;:not([disabled])&quot;);
            t &amp;&amp; t.length > 0 &amp;&amp; this.container_.classList.contains(this.CssClasses_.IS_VISIBLE) &amp;&amp; (e.keyCode === this.Keycodes_.UP_ARROW ? (e.preventDefault(), t[t.length - 1].focus()) : e.keyCode === this.Keycodes_.DOWN_ARROW &amp;&amp; (e.preventDefault(), t[0].focus()))
        }
    }, _.prototype.handleItemKeyboardEvent_ = function(e) {
        if (this.element_ &amp;&amp; this.container_) {
            var t = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.ITEM + &quot;:not([disabled])&quot;);
            if (t &amp;&amp; t.length > 0 &amp;&amp; this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)) {
                var s = Array.prototype.slice.call(t).indexOf(e.target);
                if (e.keyCode === this.Keycodes_.UP_ARROW) e.preventDefault(), s > 0 ? t[s - 1].focus() : t[t.length - 1].focus();
                else if (e.keyCode === this.Keycodes_.DOWN_ARROW) e.preventDefault(), t.length > s + 1 ? t[s + 1].focus() : t[0].focus();
                else if (e.keyCode === this.Keycodes_.SPACE || e.keyCode === this.Keycodes_.ENTER) {
                    e.preventDefault();
                    var i = new MouseEvent(&quot;mousedown&quot;);
                    e.target.dispatchEvent(i), i = new MouseEvent(&quot;mouseup&quot;), e.target.dispatchEvent(i), e.target.click()
                } else e.keyCode === this.Keycodes_.ESCAPE &amp;&amp; (e.preventDefault(), this.hide())
            }
        }
    }, _.prototype.handleItemClick_ = function(e) {
        e.target.hasAttribute(&quot;disabled&quot;) ? e.stopPropagation() : (this.closing_ = !0, window.setTimeout(function(e) {
            this.hide(), this.closing_ = !1
        }.bind(this), this.Constant_.CLOSE_TIMEOUT))
    }, _.prototype.applyClip_ = function(e, t) {
        this.element_.classList.contains(this.CssClasses_.UNALIGNED) ? this.element_.style.clip = &quot;&quot; : this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT) ? this.element_.style.clip = &quot;rect(0 &quot; + t + &quot;px 0 &quot; + t + &quot;px)&quot; : this.element_.classList.contains(this.CssClasses_.TOP_LEFT) ? this.element_.style.clip = &quot;rect(&quot; + e + &quot;px 0 &quot; + e + &quot;px 0)&quot; : this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) ? this.element_.style.clip = &quot;rect(&quot; + e + &quot;px &quot; + t + &quot;px &quot; + e + &quot;px &quot; + t + &quot;px)&quot; : this.element_.style.clip = &quot;&quot;
    }, _.prototype.addAnimationEndListener_ = function() {
        var e = function() {
            this.element_.removeEventListener(&quot;transitionend&quot;, e), this.element_.removeEventListener(&quot;webkitTransitionEnd&quot;, e), this.element_.classList.remove(this.CssClasses_.IS_ANIMATING)
        }.bind(this);
        this.element_.addEventListener(&quot;transitionend&quot;, e), this.element_.addEventListener(&quot;webkitTransitionEnd&quot;, e)
    }, _.prototype.show = function(e) {
        if (this.element_ &amp;&amp; this.container_ &amp;&amp; this.outline_) {
            var t = this.element_.getBoundingClientRect().height,
                s = this.element_.getBoundingClientRect().width;
            this.container_.style.width = s + &quot;px&quot;, this.container_.style.height = t + &quot;px&quot;, this.outline_.style.width = s + &quot;px&quot;, this.outline_.style.height = t + &quot;px&quot;;
            for (var i = this.Constant_.TRANSITION_DURATION_SECONDS * this.Constant_.TRANSITION_DURATION_FRACTION, n = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.ITEM), a = 0; a < n.length; a++) {
                var l = null;
                l = this.element_.classList.contains(this.CssClasses_.TOP_LEFT) || this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) ? (t - n[a].offsetTop - n[a].offsetHeight) / t * i + &quot;s&quot; : n[a].offsetTop / t * i + &quot;s&quot;, n[a].style.transitionDelay = l
            }
            this.applyClip_(t, s), window.requestAnimationFrame(function() {
                this.element_.classList.add(this.CssClasses_.IS_ANIMATING), this.element_.style.clip = &quot;rect(0 &quot; + s + &quot;px &quot; + t + &quot;px 0)&quot;, this.container_.classList.add(this.CssClasses_.IS_VISIBLE)
            }.bind(this)), this.addAnimationEndListener_();
            var o = function(t) {
                t === e || this.closing_ || t.target.parentNode === this.element_ || (document.removeEventListener(&quot;click&quot;, o), this.hide())
            }.bind(this);
            document.addEventListener(&quot;click&quot;, o)
        }
    }, _.prototype.show = _.prototype.show, _.prototype.hide = function() {
        if (this.element_ &amp;&amp; this.container_ &amp;&amp; this.outline_) {
            for (var e = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.ITEM), t = 0; t < e.length; t++) e[t].style.transitionDelay = null;
            var s = this.element_.getBoundingClientRect(),
                i = s.height,
                n = s.width;
            this.element_.classList.add(this.CssClasses_.IS_ANIMATING), this.applyClip_(i, n), this.container_.classList.remove(this.CssClasses_.IS_VISIBLE), this.addAnimationEndListener_()
        }
    }, _.prototype.hide = _.prototype.hide, _.prototype.toggle = function(e) {
        this.container_.classList.contains(this.CssClasses_.IS_VISIBLE) ? this.hide() : this.show(e)
    }, _.prototype.toggle = _.prototype.toggle, _.prototype.mdlDowngrade_ = function() {
        for (var e = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.ITEM), t = 0; t < e.length; t++) e[t].removeEventListener(&quot;click&quot;, this.boundItemClick_), e[t].removeEventListener(&quot;keydown&quot;, this.boundItemKeydown_)
    }, _.prototype.mdlDowngrade = _.prototype.mdlDowngrade_, _.prototype.mdlDowngrade = _.prototype.mdlDowngrade, s.register({
        constructor: _,
        classAsString: &quot;MaterialMenu&quot;,
        cssClass: &quot;mdl-js-menu&quot;,
        widget: !0
    });
    var h = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialProgress = h, h.prototype.Constant_ = {}, h.prototype.CssClasses_ = {
        INDETERMINATE_CLASS: &quot;mdl-progress__indeterminate&quot;
    }, h.prototype.setProgress = function(e) {
        this.element_.classList.contains(this.CssClasses_.INDETERMINATE_CLASS) || (this.progressbar_.style.width = e + &quot;%&quot;)
    }, h.prototype.setProgress = h.prototype.setProgress, h.prototype.setBuffer = function(e) {
        this.bufferbar_.style.width = e + &quot;%&quot;, this.auxbar_.style.width = 100 - e + &quot;%&quot;
    }, h.prototype.setBuffer = h.prototype.setBuffer, h.prototype.init = function() {
        if (this.element_) {
            var e = document.createElement(&quot;div&quot;);
            e.className = &quot;progressbar bar bar1&quot;, this.element_.appendChild(e), this.progressbar_ = e, e = document.createElement(&quot;div&quot;), e.className = &quot;bufferbar bar bar2&quot;, this.element_.appendChild(e), this.bufferbar_ = e, e = document.createElement(&quot;div&quot;), e.className = &quot;auxbar bar bar3&quot;, this.element_.appendChild(e), this.auxbar_ = e, this.progressbar_.style.width = &quot;0%&quot;, this.bufferbar_.style.width = &quot;100%&quot;, this.auxbar_.style.width = &quot;0%&quot;, this.element_.classList.add(&quot;is-upgraded&quot;)
        }
    }, h.prototype.mdlDowngrade_ = function() {
        for (; this.element_.firstChild;) this.element_.removeChild(this.element_.firstChild)
    }, h.prototype.mdlDowngrade = h.prototype.mdlDowngrade_, h.prototype.mdlDowngrade = h.prototype.mdlDowngrade, s.register({
        constructor: h,
        classAsString: &quot;MaterialProgress&quot;,
        cssClass: &quot;mdl-js-progress&quot;,
        widget: !0
    });
    var p = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialRadio = p, p.prototype.Constant_ = {
        TINY_TIMEOUT: .001
    }, p.prototype.CssClasses_ = {
        IS_FOCUSED: &quot;is-focused&quot;,
        IS_DISABLED: &quot;is-disabled&quot;,
        IS_CHECKED: &quot;is-checked&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;,
        JS_RADIO: &quot;mdl-js-radio&quot;,
        RADIO_BTN: &quot;mdl-radio__button&quot;,
        RADIO_OUTER_CIRCLE: &quot;mdl-radio__outer-circle&quot;,
        RADIO_INNER_CIRCLE: &quot;mdl-radio__inner-circle&quot;,
        RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        RIPPLE_CONTAINER: &quot;mdl-radio__ripple-container&quot;,
        RIPPLE_CENTER: &quot;mdl-ripple--center&quot;,
        RIPPLE: &quot;mdl-ripple&quot;
    }, p.prototype.onChange_ = function(e) {
        for (var t = document.getElementsByClassName(this.CssClasses_.JS_RADIO), s = 0; s < t.length; s++) {
            var i = t[s].querySelector(&quot;.&quot; + this.CssClasses_.RADIO_BTN);
            i.getAttribute(&quot;name&quot;) === this.btnElement_.getAttribute(&quot;name&quot;) &amp;&amp; t[s].MaterialRadio.updateClasses_()
        }
    }, p.prototype.onFocus_ = function(e) {
        this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
    }, p.prototype.onBlur_ = function(e) {
        this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
    }, p.prototype.onMouseup_ = function(e) {
        this.blur_()
    }, p.prototype.updateClasses_ = function() {
        this.checkDisabled(), this.checkToggleState()
    }, p.prototype.blur_ = function() {
        window.setTimeout(function() {
            this.btnElement_.blur()
        }.bind(this), this.Constant_.TINY_TIMEOUT)
    }, p.prototype.checkDisabled = function() {
        this.btnElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
    }, p.prototype.checkDisabled = p.prototype.checkDisabled, p.prototype.checkToggleState = function() {
        this.btnElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
    }, p.prototype.checkToggleState = p.prototype.checkToggleState, p.prototype.disable = function() {
        this.btnElement_.disabled = !0, this.updateClasses_()
    }, p.prototype.disable = p.prototype.disable, p.prototype.enable = function() {
        this.btnElement_.disabled = !1, this.updateClasses_()
    }, p.prototype.enable = p.prototype.enable, p.prototype.check = function() {
        this.btnElement_.checked = !0, this.updateClasses_()
    }, p.prototype.check = p.prototype.check, p.prototype.uncheck = function() {
        this.btnElement_.checked = !1, this.updateClasses_()
    }, p.prototype.uncheck = p.prototype.uncheck, p.prototype.init = function() {
        if (this.element_) {
            this.btnElement_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.RADIO_BTN), this.boundChangeHandler_ = this.onChange_.bind(this), this.boundFocusHandler_ = this.onChange_.bind(this), this.boundBlurHandler_ = this.onBlur_.bind(this), this.boundMouseUpHandler_ = this.onMouseup_.bind(this);
            var e = document.createElement(&quot;span&quot;);
            e.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);
            var t = document.createElement(&quot;span&quot;);
            t.classList.add(this.CssClasses_.RADIO_INNER_CIRCLE), this.element_.appendChild(e), this.element_.appendChild(t);
            var s;
            if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
                this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), s = document.createElement(&quot;span&quot;), s.classList.add(this.CssClasses_.RIPPLE_CONTAINER), s.classList.add(this.CssClasses_.RIPPLE_EFFECT), s.classList.add(this.CssClasses_.RIPPLE_CENTER), s.addEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler_);
                var i = document.createElement(&quot;span&quot;);
                i.classList.add(this.CssClasses_.RIPPLE), s.appendChild(i), this.element_.appendChild(s)
            }
            this.btnElement_.addEventListener(&quot;change&quot;, this.boundChangeHandler_), this.btnElement_.addEventListener(&quot;focus&quot;, this.boundFocusHandler_), this.btnElement_.addEventListener(&quot;blur&quot;, this.boundBlurHandler_), this.element_.addEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler_), this.updateClasses_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
        }
    }, p.prototype.mdlDowngrade_ = function() {
        var e = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.RIPPLE_CONTAINER);
        this.btnElement_.removeEventListener(&quot;change&quot;, this.boundChangeHandler_), this.btnElement_.removeEventListener(&quot;focus&quot;, this.boundFocusHandler_), this.btnElement_.removeEventListener(&quot;blur&quot;, this.boundBlurHandler_), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler_), e &amp;&amp; (e.removeEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler_), this.element_.removeChild(e))
    }, p.prototype.mdlDowngrade = p.prototype.mdlDowngrade_, p.prototype.mdlDowngrade = p.prototype.mdlDowngrade, s.register({
        constructor: p,
        classAsString: &quot;MaterialRadio&quot;,
        cssClass: &quot;mdl-js-radio&quot;,
        widget: !0
    });
    var c = function(e) {
        this.element_ = e, this.isIE_ = window.navigator.msPointerEnabled, this.init()
    };
    window.MaterialSlider = c, c.prototype.Constant_ = {}, c.prototype.CssClasses_ = {
        IE_CONTAINER: &quot;mdl-slider__ie-container&quot;,
        SLIDER_CONTAINER: &quot;mdl-slider__container&quot;,
        BACKGROUND_FLEX: &quot;mdl-slider__background-flex&quot;,
        BACKGROUND_LOWER: &quot;mdl-slider__background-lower&quot;,
        BACKGROUND_UPPER: &quot;mdl-slider__background-upper&quot;,
        IS_LOWEST_VALUE: &quot;is-lowest-value&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;
    }, c.prototype.onInput_ = function(e) {
        this.updateValueStyles_()
    }, c.prototype.onChange_ = function(e) {
        this.updateValueStyles_()
    }, c.prototype.onMouseUp_ = function(e) {
        e.target.blur()
    }, c.prototype.onContainerMouseDown_ = function(e) {
        if (e.target === this.element_.parentElement) {
            e.preventDefault();
            var t = new MouseEvent(&quot;mousedown&quot;, {
                target: e.target,
                buttons: e.buttons,
                clientX: e.clientX,
                clientY: this.element_.getBoundingClientRect().y
            });
            this.element_.dispatchEvent(t)
        }
    }, c.prototype.updateValueStyles_ = function() {
        var e = (this.element_.value - this.element_.min) / (this.element_.max - this.element_.min);
        0 === e ? this.element_.classList.add(this.CssClasses_.IS_LOWEST_VALUE) : this.element_.classList.remove(this.CssClasses_.IS_LOWEST_VALUE), this.isIE_ || (this.backgroundLower_.style.flex = e, this.backgroundLower_.style.webkitFlex = e, this.backgroundUpper_.style.flex = 1 - e, this.backgroundUpper_.style.webkitFlex = 1 - e)
    }, c.prototype.disable = function() {
        this.element_.disabled = !0
    }, c.prototype.disable = c.prototype.disable, c.prototype.enable = function() {
        this.element_.disabled = !1
    }, c.prototype.enable = c.prototype.enable, c.prototype.change = function(e) {
        &quot;undefined&quot; != typeof e &amp;&amp; (this.element_.value = e), this.updateValueStyles_()
    }, c.prototype.change = c.prototype.change, c.prototype.init = function() {
        if (this.element_) {
            if (this.isIE_) {
                var e = document.createElement(&quot;div&quot;);
                e.classList.add(this.CssClasses_.IE_CONTAINER),
                this.element_.parentElement.insertBefore(e, this.element_), this.element_.parentElement.removeChild(this.element_), e.appendChild(this.element_)
            } else {
                var t = document.createElement(&quot;div&quot;);
                t.classList.add(this.CssClasses_.SLIDER_CONTAINER), this.element_.parentElement.insertBefore(t, this.element_), this.element_.parentElement.removeChild(this.element_), t.appendChild(this.element_);
                var s = document.createElement(&quot;div&quot;);
                s.classList.add(this.CssClasses_.BACKGROUND_FLEX), t.appendChild(s), this.backgroundLower_ = document.createElement(&quot;div&quot;), this.backgroundLower_.classList.add(this.CssClasses_.BACKGROUND_LOWER), s.appendChild(this.backgroundLower_), this.backgroundUpper_ = document.createElement(&quot;div&quot;), this.backgroundUpper_.classList.add(this.CssClasses_.BACKGROUND_UPPER), s.appendChild(this.backgroundUpper_)
            }
            this.boundInputHandler = this.onInput_.bind(this), this.boundChangeHandler = this.onChange_.bind(this), this.boundMouseUpHandler = this.onMouseUp_.bind(this), this.boundContainerMouseDownHandler = this.onContainerMouseDown_.bind(this), this.element_.addEventListener(&quot;input&quot;, this.boundInputHandler), this.element_.addEventListener(&quot;change&quot;, this.boundChangeHandler), this.element_.addEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler), this.element_.parentElement.addEventListener(&quot;mousedown&quot;, this.boundContainerMouseDownHandler), this.updateValueStyles_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
        }
    }, c.prototype.mdlDowngrade_ = function() {
        this.element_.removeEventListener(&quot;input&quot;, this.boundInputHandler), this.element_.removeEventListener(&quot;change&quot;, this.boundChangeHandler), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler), this.element_.parentElement.removeEventListener(&quot;mousedown&quot;, this.boundContainerMouseDownHandler)
    }, c.prototype.mdlDowngrade = c.prototype.mdlDowngrade_, c.prototype.mdlDowngrade = c.prototype.mdlDowngrade, s.register({
        constructor: c,
        classAsString: &quot;MaterialSlider&quot;,
        cssClass: &quot;mdl-js-slider&quot;,
        widget: !0
    });
    var u = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialSpinner = u, u.prototype.Constant_ = {
        MDL_SPINNER_LAYER_COUNT: 4
    }, u.prototype.CssClasses_ = {
        MDL_SPINNER_LAYER: &quot;mdl-spinner__layer&quot;,
        MDL_SPINNER_CIRCLE_CLIPPER: &quot;mdl-spinner__circle-clipper&quot;,
        MDL_SPINNER_CIRCLE: &quot;mdl-spinner__circle&quot;,
        MDL_SPINNER_GAP_PATCH: &quot;mdl-spinner__gap-patch&quot;,
        MDL_SPINNER_LEFT: &quot;mdl-spinner__left&quot;,
        MDL_SPINNER_RIGHT: &quot;mdl-spinner__right&quot;
    }, u.prototype.createLayer = function(e) {
        var t = document.createElement(&quot;div&quot;);
        t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER), t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER + &quot;-&quot; + e);
        var s = document.createElement(&quot;div&quot;);
        s.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER), s.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);
        var i = document.createElement(&quot;div&quot;);
        i.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);
        var n = document.createElement(&quot;div&quot;);
        n.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER), n.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);
        for (var a = [s, i, n], l = 0; l < a.length; l++) {
            var o = document.createElement(&quot;div&quot;);
            o.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE), a[l].appendChild(o)
        }
        t.appendChild(s), t.appendChild(i), t.appendChild(n), this.element_.appendChild(t)
    }, u.prototype.createLayer = u.prototype.createLayer, u.prototype.stop = function() {
        this.element_.classList.remove(&quot;is-active&quot;)
    }, u.prototype.stop = u.prototype.stop, u.prototype.start = function() {
        this.element_.classList.add(&quot;is-active&quot;)
    }, u.prototype.start = u.prototype.start, u.prototype.init = function() {
        if (this.element_) {
            for (var e = 1; e <= this.Constant_.MDL_SPINNER_LAYER_COUNT; e++) this.createLayer(e);
            this.element_.classList.add(&quot;is-upgraded&quot;)
        }
    }, s.register({
        constructor: u,
        classAsString: &quot;MaterialSpinner&quot;,
        cssClass: &quot;mdl-js-spinner&quot;,
        widget: !0
    });
    var C = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialSwitch = C, C.prototype.Constant_ = {
        TINY_TIMEOUT: .001
    }, C.prototype.CssClasses_ = {
        INPUT: &quot;mdl-switch__input&quot;,
        TRACK: &quot;mdl-switch__track&quot;,
        THUMB: &quot;mdl-switch__thumb&quot;,
        FOCUS_HELPER: &quot;mdl-switch__focus-helper&quot;,
        RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        RIPPLE_CONTAINER: &quot;mdl-switch__ripple-container&quot;,
        RIPPLE_CENTER: &quot;mdl-ripple--center&quot;,
        RIPPLE: &quot;mdl-ripple&quot;,
        IS_FOCUSED: &quot;is-focused&quot;,
        IS_DISABLED: &quot;is-disabled&quot;,
        IS_CHECKED: &quot;is-checked&quot;
    }, C.prototype.onChange_ = function(e) {
        this.updateClasses_()
    }, C.prototype.onFocus_ = function(e) {
        this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
    }, C.prototype.onBlur_ = function(e) {
        this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
    }, C.prototype.onMouseUp_ = function(e) {
        this.blur_()
    }, C.prototype.updateClasses_ = function() {
        this.checkDisabled(), this.checkToggleState()
    }, C.prototype.blur_ = function() {
        window.setTimeout(function() {
            this.inputElement_.blur()
        }.bind(this), this.Constant_.TINY_TIMEOUT)
    }, C.prototype.checkDisabled = function() {
        this.inputElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
    }, C.prototype.checkDisabled = C.prototype.checkDisabled, C.prototype.checkToggleState = function() {
        this.inputElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
    }, C.prototype.checkToggleState = C.prototype.checkToggleState, C.prototype.disable = function() {
        this.inputElement_.disabled = !0, this.updateClasses_()
    }, C.prototype.disable = C.prototype.disable, C.prototype.enable = function() {
        this.inputElement_.disabled = !1, this.updateClasses_()
    }, C.prototype.enable = C.prototype.enable, C.prototype.on = function() {
        this.inputElement_.checked = !0, this.updateClasses_()
    }, C.prototype.on = C.prototype.on, C.prototype.off = function() {
        this.inputElement_.checked = !1, this.updateClasses_()
    }, C.prototype.off = C.prototype.off, C.prototype.init = function() {
        if (this.element_) {
            this.inputElement_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.INPUT);
            var e = document.createElement(&quot;div&quot;);
            e.classList.add(this.CssClasses_.TRACK);
            var t = document.createElement(&quot;div&quot;);
            t.classList.add(this.CssClasses_.THUMB);
            var s = document.createElement(&quot;span&quot;);
            if (s.classList.add(this.CssClasses_.FOCUS_HELPER), t.appendChild(s), this.element_.appendChild(e), this.element_.appendChild(t), this.boundMouseUpHandler = this.onMouseUp_.bind(this), this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
                this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), this.rippleContainerElement_ = document.createElement(&quot;span&quot;), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER), this.rippleContainerElement_.addEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler);
                var i = document.createElement(&quot;span&quot;);
                i.classList.add(this.CssClasses_.RIPPLE), this.rippleContainerElement_.appendChild(i), this.element_.appendChild(this.rippleContainerElement_)
            }
            this.boundChangeHandler = this.onChange_.bind(this), this.boundFocusHandler = this.onFocus_.bind(this), this.boundBlurHandler = this.onBlur_.bind(this), this.inputElement_.addEventListener(&quot;change&quot;, this.boundChangeHandler), this.inputElement_.addEventListener(&quot;focus&quot;, this.boundFocusHandler), this.inputElement_.addEventListener(&quot;blur&quot;, this.boundBlurHandler), this.element_.addEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler), this.updateClasses_(), this.element_.classList.add(&quot;is-upgraded&quot;)
        }
    }, C.prototype.mdlDowngrade_ = function() {
        this.rippleContainerElement_ &amp;&amp; this.rippleContainerElement_.removeEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler), this.inputElement_.removeEventListener(&quot;change&quot;, this.boundChangeHandler), this.inputElement_.removeEventListener(&quot;focus&quot;, this.boundFocusHandler), this.inputElement_.removeEventListener(&quot;blur&quot;, this.boundBlurHandler), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundMouseUpHandler)
    }, C.prototype.mdlDowngrade = C.prototype.mdlDowngrade_, C.prototype.mdlDowngrade = C.prototype.mdlDowngrade, s.register({
        constructor: C,
        classAsString: &quot;MaterialSwitch&quot;,
        cssClass: &quot;mdl-js-switch&quot;,
        widget: !0
    });
    var m = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialTabs = m, m.prototype.Constant_ = {}, m.prototype.CssClasses_ = {
        TAB_CLASS: &quot;mdl-tabs__tab&quot;,
        PANEL_CLASS: &quot;mdl-tabs__panel&quot;,
        ACTIVE_CLASS: &quot;is-active&quot;,
        UPGRADED_CLASS: &quot;is-upgraded&quot;,
        MDL_JS_RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        MDL_RIPPLE_CONTAINER: &quot;mdl-tabs__ripple-container&quot;,
        MDL_RIPPLE: &quot;mdl-ripple&quot;,
        MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;
    }, m.prototype.initTabs_ = function() {
        this.element_.classList.contains(this.CssClasses_.MDL_JS_RIPPLE_EFFECT) &amp;&amp; this.element_.classList.add(this.CssClasses_.MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS), this.tabs_ = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.TAB_CLASS), this.panels_ = this.element_.querySelectorAll(&quot;.&quot; + this.CssClasses_.PANEL_CLASS);
        for (var t = 0; t < this.tabs_.length; t++) new e(this.tabs_[t], this);
        this.element_.classList.add(this.CssClasses_.UPGRADED_CLASS)
    }, m.prototype.resetTabState_ = function() {
        for (var e = 0; e < this.tabs_.length; e++) this.tabs_[e].classList.remove(this.CssClasses_.ACTIVE_CLASS)
    }, m.prototype.resetPanelState_ = function() {
        for (var e = 0; e < this.panels_.length; e++) this.panels_[e].classList.remove(this.CssClasses_.ACTIVE_CLASS)
    }, m.prototype.init = function() {
        this.element_ &amp;&amp; this.initTabs_()
    }, s.register({
        constructor: m,
        classAsString: &quot;MaterialTabs&quot;,
        cssClass: &quot;mdl-js-tabs&quot;
    });
    var E = function(e) {
        this.element_ = e, this.maxRows = this.Constant_.NO_MAX_ROWS, this.init()
    };
    window.MaterialTextfield = E, E.prototype.Constant_ = {
        NO_MAX_ROWS: -1,
        MAX_ROWS_ATTRIBUTE: &quot;maxrows&quot;
    }, E.prototype.CssClasses_ = {
        LABEL: &quot;mdl-textfield__label&quot;,
        INPUT: &quot;mdl-textfield__input&quot;,
        IS_DIRTY: &quot;is-dirty&quot;,
        IS_FOCUSED: &quot;is-focused&quot;,
        IS_DISABLED: &quot;is-disabled&quot;,
        IS_INVALID: &quot;is-invalid&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;
    }, E.prototype.onKeyDown_ = function(e) {
        var t = e.target.value.split(&quot;\n&quot;).length;
        13 === e.keyCode &amp;&amp; t >= this.maxRows &amp;&amp; e.preventDefault()
    }, E.prototype.onFocus_ = function(e) {
        this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
    }, E.prototype.onBlur_ = function(e) {
        this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
    }, E.prototype.updateClasses_ = function() {
        this.checkDisabled(), this.checkValidity(), this.checkDirty()
    }, E.prototype.checkDisabled = function() {
        this.input_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
    }, E.prototype.checkDisabled = E.prototype.checkDisabled, E.prototype.checkValidity = function() {
        this.input_.validity &amp;&amp; (this.input_.validity.valid ? this.element_.classList.remove(this.CssClasses_.IS_INVALID) : this.element_.classList.add(this.CssClasses_.IS_INVALID))
    }, E.prototype.checkValidity = E.prototype.checkValidity, E.prototype.checkDirty = function() {
        this.input_.value &amp;&amp; this.input_.value.length > 0 ? this.element_.classList.add(this.CssClasses_.IS_DIRTY) : this.element_.classList.remove(this.CssClasses_.IS_DIRTY)
    }, E.prototype.checkDirty = E.prototype.checkDirty, E.prototype.disable = function() {
        this.input_.disabled = !0, this.updateClasses_()
    }, E.prototype.disable = E.prototype.disable, E.prototype.enable = function() {
        this.input_.disabled = !1, this.updateClasses_()
    }, E.prototype.enable = E.prototype.enable, E.prototype.change = function(e) {
        this.input_.value = e || &quot;&quot;, this.updateClasses_()
    }, E.prototype.change = E.prototype.change, E.prototype.init = function() {
        if (this.element_ &amp;&amp; (this.label_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.LABEL), this.input_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.INPUT), this.input_)) {
            this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE) &amp;&amp; (this.maxRows = parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE), 10), isNaN(this.maxRows) &amp;&amp; (this.maxRows = this.Constant_.NO_MAX_ROWS)), this.boundUpdateClassesHandler = this.updateClasses_.bind(this), this.boundFocusHandler = this.onFocus_.bind(this), this.boundBlurHandler = this.onBlur_.bind(this), this.input_.addEventListener(&quot;input&quot;, this.boundUpdateClassesHandler), this.input_.addEventListener(&quot;focus&quot;, this.boundFocusHandler), this.input_.addEventListener(&quot;blur&quot;, this.boundBlurHandler), this.maxRows !== this.Constant_.NO_MAX_ROWS &amp;&amp; (this.boundKeyDownHandler = this.onKeyDown_.bind(this), this.input_.addEventListener(&quot;keydown&quot;, this.boundKeyDownHandler));
            var e = this.element_.classList.contains(this.CssClasses_.IS_INVALID);
            this.updateClasses_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED), e &amp;&amp; this.element_.classList.add(this.CssClasses_.IS_INVALID)
        }
    }, E.prototype.mdlDowngrade_ = function() {
        this.input_.removeEventListener(&quot;input&quot;, this.boundUpdateClassesHandler), this.input_.removeEventListener(&quot;focus&quot;, this.boundFocusHandler), this.input_.removeEventListener(&quot;blur&quot;, this.boundBlurHandler), this.boundKeyDownHandler &amp;&amp; this.input_.removeEventListener(&quot;keydown&quot;, this.boundKeyDownHandler)
    }, E.prototype.mdlDowngrade = E.prototype.mdlDowngrade_, E.prototype.mdlDowngrade = E.prototype.mdlDowngrade, s.register({
        constructor: E,
        classAsString: &quot;MaterialTextfield&quot;,
        cssClass: &quot;mdl-js-textfield&quot;,
        widget: !0
    });
    var L = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialTooltip = L, L.prototype.Constant_ = {}, L.prototype.CssClasses_ = {
        IS_ACTIVE: &quot;is-active&quot;
    }, L.prototype.handleMouseEnter_ = function(e) {
        e.stopPropagation();
        var t = e.target.getBoundingClientRect(),
            s = t.left + t.width / 2,
            i = -1 * (this.element_.offsetWidth / 2);
        0 > s + i ? (this.element_.style.left = 0, this.element_.style.marginLeft = 0) : (this.element_.style.left = s + &quot;px&quot;, this.element_.style.marginLeft = i + &quot;px&quot;), this.element_.style.top = t.top + t.height + 10 + &quot;px&quot;, this.element_.classList.add(this.CssClasses_.IS_ACTIVE), window.addEventListener(&quot;scroll&quot;, this.boundMouseLeaveHandler, !1), window.addEventListener(&quot;touchmove&quot;, this.boundMouseLeaveHandler, !1)
    }, L.prototype.handleMouseLeave_ = function(e) {
        e.stopPropagation(), this.element_.classList.remove(this.CssClasses_.IS_ACTIVE), window.removeEventListener(&quot;scroll&quot;, this.boundMouseLeaveHandler), window.removeEventListener(&quot;touchmove&quot;, this.boundMouseLeaveHandler, !1)
    }, L.prototype.init = function() {
        if (this.element_) {
            var e = this.element_.getAttribute(&quot;for&quot;);
            e &amp;&amp; (this.forElement_ = document.getElementById(e)), this.forElement_ &amp;&amp; (this.forElement_.hasAttribute(&quot;tabindex&quot;) || this.forElement_.setAttribute(&quot;tabindex&quot;, &quot;0&quot;), this.boundMouseEnterHandler = this.handleMouseEnter_.bind(this), this.boundMouseLeaveHandler = this.handleMouseLeave_.bind(this), this.forElement_.addEventListener(&quot;mouseenter&quot;, this.boundMouseEnterHandler, !1), this.forElement_.addEventListener(&quot;click&quot;, this.boundMouseEnterHandler, !1), this.forElement_.addEventListener(&quot;blur&quot;, this.boundMouseLeaveHandler), this.forElement_.addEventListener(&quot;touchstart&quot;, this.boundMouseEnterHandler, !1), this.forElement_.addEventListener(&quot;mouseleave&quot;, this.boundMouseLeaveHandler))
        }
    }, L.prototype.mdlDowngrade_ = function() {
        this.forElement_ &amp;&amp; (this.forElement_.removeEventListener(&quot;mouseenter&quot;, this.boundMouseEnterHandler, !1), this.forElement_.removeEventListener(&quot;click&quot;, this.boundMouseEnterHandler, !1), this.forElement_.removeEventListener(&quot;touchstart&quot;, this.boundMouseEnterHandler, !1), this.forElement_.removeEventListener(&quot;mouseleave&quot;, this.boundMouseLeaveHandler))
    }, L.prototype.mdlDowngrade = L.prototype.mdlDowngrade_, L.prototype.mdlDowngrade = L.prototype.mdlDowngrade, s.register({
        constructor: L,
        classAsString: &quot;MaterialTooltip&quot;,
        cssClass: &quot;mdl-tooltip&quot;
    });
    var I = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialLayout = I, I.prototype.Constant_ = {
        MAX_WIDTH: &quot;(max-width: 1024px)&quot;,
        TAB_SCROLL_PIXELS: 100,
        MENU_ICON: &quot;menu&quot;,
        CHEVRON_LEFT: &quot;chevron_left&quot;,
        CHEVRON_RIGHT: &quot;chevron_right&quot;
    }, I.prototype.Mode_ = {
        STANDARD: 0,
        SEAMED: 1,
        WATERFALL: 2,
        SCROLL: 3
    }, I.prototype.CssClasses_ = {
        CONTAINER: &quot;mdl-layout__container&quot;,
        HEADER: &quot;mdl-layout__header&quot;,
        DRAWER: &quot;mdl-layout__drawer&quot;,
        CONTENT: &quot;mdl-layout__content&quot;,
        DRAWER_BTN: &quot;mdl-layout__drawer-button&quot;,
        ICON: &quot;material-icons&quot;,
        JS_RIPPLE_EFFECT: &quot;mdl-js-ripple-effect&quot;,
        RIPPLE_CONTAINER: &quot;mdl-layout__tab-ripple-container&quot;,
        RIPPLE: &quot;mdl-ripple&quot;,
        RIPPLE_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        HEADER_SEAMED: &quot;mdl-layout__header--seamed&quot;,
        HEADER_WATERFALL: &quot;mdl-layout__header--waterfall&quot;,
        HEADER_SCROLL: &quot;mdl-layout__header--scroll&quot;,
        FIXED_HEADER: &quot;mdl-layout--fixed-header&quot;,
        OBFUSCATOR: &quot;mdl-layout__obfuscator&quot;,
        TAB_BAR: &quot;mdl-layout__tab-bar&quot;,
        TAB_CONTAINER: &quot;mdl-layout__tab-bar-container&quot;,
        TAB: &quot;mdl-layout__tab&quot;,
        TAB_BAR_BUTTON: &quot;mdl-layout__tab-bar-button&quot;,
        TAB_BAR_LEFT_BUTTON: &quot;mdl-layout__tab-bar-left-button&quot;,
        TAB_BAR_RIGHT_BUTTON: &quot;mdl-layout__tab-bar-right-button&quot;,
        PANEL: &quot;mdl-layout__tab-panel&quot;,
        HAS_DRAWER: &quot;has-drawer&quot;,
        HAS_TABS: &quot;has-tabs&quot;,
        HAS_SCROLLING_HEADER: &quot;has-scrolling-header&quot;,
        CASTING_SHADOW: &quot;is-casting-shadow&quot;,
        IS_COMPACT: &quot;is-compact&quot;,
        IS_SMALL_SCREEN: &quot;is-small-screen&quot;,
        IS_DRAWER_OPEN: &quot;is-visible&quot;,
        IS_ACTIVE: &quot;is-active&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;,
        IS_ANIMATING: &quot;is-animating&quot;,
        ON_LARGE_SCREEN: &quot;mdl-layout--large-screen-only&quot;,
        ON_SMALL_SCREEN: &quot;mdl-layout--small-screen-only&quot;
    }, I.prototype.contentScrollHandler_ = function() {
        this.header_.classList.contains(this.CssClasses_.IS_ANIMATING) || (this.content_.scrollTop > 0 &amp;&amp; !this.header_.classList.contains(this.CssClasses_.IS_COMPACT) ? (this.header_.classList.add(this.CssClasses_.CASTING_SHADOW), this.header_.classList.add(this.CssClasses_.IS_COMPACT), this.header_.classList.add(this.CssClasses_.IS_ANIMATING)) : this.content_.scrollTop <= 0 &amp;&amp; this.header_.classList.contains(this.CssClasses_.IS_COMPACT) &amp;&amp; (this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW), this.header_.classList.remove(this.CssClasses_.IS_COMPACT), this.header_.classList.add(this.CssClasses_.IS_ANIMATING)))
    }, I.prototype.screenSizeHandler_ = function() {
        this.screenSizeMediaQuery_.matches ? this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN) : (this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN), this.drawer_ &amp;&amp; (this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN), this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN)))
    }, I.prototype.drawerToggleHandler_ = function() {
        this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN), this.obfuscator_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN)
    }, I.prototype.headerTransitionEndHandler_ = function() {
        this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)
    }, I.prototype.headerClickHandler_ = function() {
        this.header_.classList.contains(this.CssClasses_.IS_COMPACT) &amp;&amp; (this.header_.classList.remove(this.CssClasses_.IS_COMPACT), this.header_.classList.add(this.CssClasses_.IS_ANIMATING))
    }, I.prototype.resetTabState_ = function(e) {
        for (var t = 0; t < e.length; t++) e[t].classList.remove(this.CssClasses_.IS_ACTIVE)
    }, I.prototype.resetPanelState_ = function(e) {
        for (var t = 0; t < e.length; t++) e[t].classList.remove(this.CssClasses_.IS_ACTIVE)
    }, I.prototype.init = function() {
        if (this.element_) {
            var e = document.createElement(&quot;div&quot;);
            e.classList.add(this.CssClasses_.CONTAINER), this.element_.parentElement.insertBefore(e, this.element_), this.element_.parentElement.removeChild(this.element_), e.appendChild(this.element_);
            for (var s = this.element_.childNodes, i = s.length, n = 0; i > n; n++) {
                var a = s[n];
                a.classList &amp;&amp; a.classList.contains(this.CssClasses_.HEADER) &amp;&amp; (this.header_ = a), a.classList &amp;&amp; a.classList.contains(this.CssClasses_.DRAWER) &amp;&amp; (this.drawer_ = a), a.classList &amp;&amp; a.classList.contains(this.CssClasses_.CONTENT) &amp;&amp; (this.content_ = a)
            }
            this.header_ &amp;&amp; (this.tabBar_ = this.header_.querySelector(&quot;.&quot; + this.CssClasses_.TAB_BAR));
            var l = this.Mode_.STANDARD;
            if (this.header_ &amp;&amp; (this.header_.classList.contains(this.CssClasses_.HEADER_SEAMED) ? l = this.Mode_.SEAMED : this.header_.classList.contains(this.CssClasses_.HEADER_WATERFALL) ? (l = this.Mode_.WATERFALL, this.header_.addEventListener(&quot;transitionend&quot;, this.headerTransitionEndHandler_.bind(this)), this.header_.addEventListener(&quot;click&quot;, this.headerClickHandler_.bind(this))) : this.header_.classList.contains(this.CssClasses_.HEADER_SCROLL) &amp;&amp; (l = this.Mode_.SCROLL, e.classList.add(this.CssClasses_.HAS_SCROLLING_HEADER)), l === this.Mode_.STANDARD ? (this.header_.classList.add(this.CssClasses_.CASTING_SHADOW), this.tabBar_ &amp;&amp; this.tabBar_.classList.add(this.CssClasses_.CASTING_SHADOW)) : l === this.Mode_.SEAMED || l === this.Mode_.SCROLL ? (this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW), this.tabBar_ &amp;&amp; this.tabBar_.classList.remove(this.CssClasses_.CASTING_SHADOW)) : l === this.Mode_.WATERFALL &amp;&amp; (this.content_.addEventListener(&quot;scroll&quot;, this.contentScrollHandler_.bind(this)), this.contentScrollHandler_())), this.drawer_) {
                var o = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.DRAWER_BTN);
                if (!o) {
                    o = document.createElement(&quot;div&quot;), o.classList.add(this.CssClasses_.DRAWER_BTN);
                    var r = document.createElement(&quot;i&quot;);
                    r.classList.add(this.CssClasses_.ICON), r.textContent = this.Constant_.MENU_ICON, o.appendChild(r)
                }
                this.drawer_.classList.contains(this.CssClasses_.ON_LARGE_SCREEN) ? o.classList.add(this.CssClasses_.ON_LARGE_SCREEN) : this.drawer_.classList.contains(this.CssClasses_.ON_SMALL_SCREEN) &amp;&amp; o.classList.add(this.CssClasses_.ON_SMALL_SCREEN), o.addEventListener(&quot;click&quot;, this.drawerToggleHandler_.bind(this)), this.element_.classList.add(this.CssClasses_.HAS_DRAWER), this.element_.classList.contains(this.CssClasses_.FIXED_HEADER) ? this.header_.insertBefore(o, this.header_.firstChild) : this.element_.insertBefore(o, this.content_);
                var d = document.createElement(&quot;div&quot;);
                d.classList.add(this.CssClasses_.OBFUSCATOR), this.element_.appendChild(d), d.addEventListener(&quot;click&quot;, this.drawerToggleHandler_.bind(this)), this.obfuscator_ = d
            }
            if (this.screenSizeMediaQuery_ = window.matchMedia(this.Constant_.MAX_WIDTH), this.screenSizeMediaQuery_.addListener(this.screenSizeHandler_.bind(this)), this.screenSizeHandler_(), this.header_ &amp;&amp; this.tabBar_) {
                this.element_.classList.add(this.CssClasses_.HAS_TABS);
                var _ = document.createElement(&quot;div&quot;);
                _.classList.add(this.CssClasses_.TAB_CONTAINER), this.header_.insertBefore(_, this.tabBar_), this.header_.removeChild(this.tabBar_);
                var h = document.createElement(&quot;div&quot;);
                h.classList.add(this.CssClasses_.TAB_BAR_BUTTON), h.classList.add(this.CssClasses_.TAB_BAR_LEFT_BUTTON);
                var p = document.createElement(&quot;i&quot;);
                p.classList.add(this.CssClasses_.ICON), p.textContent = this.Constant_.CHEVRON_LEFT, h.appendChild(p), h.addEventListener(&quot;click&quot;, function() {
                    this.tabBar_.scrollLeft -= this.Constant_.TAB_SCROLL_PIXELS
                }.bind(this));
                var c = document.createElement(&quot;div&quot;);
                c.classList.add(this.CssClasses_.TAB_BAR_BUTTON), c.classList.add(this.CssClasses_.TAB_BAR_RIGHT_BUTTON);
                var u = document.createElement(&quot;i&quot;);
                u.classList.add(this.CssClasses_.ICON), u.textContent = this.Constant_.CHEVRON_RIGHT, c.appendChild(u), c.addEventListener(&quot;click&quot;, function() {
                    this.tabBar_.scrollLeft += this.Constant_.TAB_SCROLL_PIXELS
                }.bind(this)), _.appendChild(h), _.appendChild(this.tabBar_), _.appendChild(c);
                var C = function() {
                    this.tabBar_.scrollLeft > 0 ? h.classList.add(this.CssClasses_.IS_ACTIVE) : h.classList.remove(this.CssClasses_.IS_ACTIVE), this.tabBar_.scrollLeft < this.tabBar_.scrollWidth - this.tabBar_.offsetWidth ? c.classList.add(this.CssClasses_.IS_ACTIVE) : c.classList.remove(this.CssClasses_.IS_ACTIVE)
                }.bind(this);
                this.tabBar_.addEventListener(&quot;scroll&quot;, C), C(), this.tabBar_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT) &amp;&amp; this.tabBar_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);
                for (var m = this.tabBar_.querySelectorAll(&quot;.&quot; + this.CssClasses_.TAB), E = this.content_.querySelectorAll(&quot;.&quot; + this.CssClasses_.PANEL), L = 0; L < m.length; L++) new t(m[L], m, E, this)
            }
            this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
        }
    }, s.register({
        constructor: I,
        classAsString: &quot;MaterialLayout&quot;,
        cssClass: &quot;mdl-js-layout&quot;
    });
    var f = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialDataTable = f, f.prototype.Constant_ = {}, f.prototype.CssClasses_ = {
        DATA_TABLE: &quot;mdl-data-table&quot;,
        SELECTABLE: &quot;mdl-data-table--selectable&quot;,
        SELECT_ELEMENT: &quot;mdl-data-table__select&quot;,
        IS_SELECTED: &quot;is-selected&quot;,
        IS_UPGRADED: &quot;is-upgraded&quot;
    }, f.prototype.selectRow_ = function(e, t, s) {
        return t ? function() {
            e.checked ? t.classList.add(this.CssClasses_.IS_SELECTED) : t.classList.remove(this.CssClasses_.IS_SELECTED)
        }.bind(this) : s ? function() {
            var t, i;
            if (e.checked) for (t = 0; t < s.length; t++) i = s[t].querySelector(&quot;td&quot;).querySelector(&quot;.mdl-checkbox&quot;), i.MaterialCheckbox.check(), s[t].classList.add(this.CssClasses_.IS_SELECTED);
            else for (t = 0; t < s.length; t++) i = s[t].querySelector(&quot;td&quot;).querySelector(&quot;.mdl-checkbox&quot;), i.MaterialCheckbox.uncheck(), s[t].classList.remove(this.CssClasses_.IS_SELECTED)
        }.bind(this) : void 0
    }, f.prototype.createCheckbox_ = function(e, t) {
        var i = document.createElement(&quot;label&quot;),
            n = [&quot;mdl-checkbox&quot;, &quot;mdl-js-checkbox&quot;, &quot;mdl-js-ripple-effect&quot;, this.CssClasses_.SELECT_ELEMENT];
        i.className = n.join(&quot; &quot;);
        var a = document.createElement(&quot;input&quot;);
        return a.type = &quot;checkbox&quot;, a.classList.add(&quot;mdl-checkbox__input&quot;), a.addEventListener(&quot;change&quot;, this.selectRow_(a, e, t)), i.appendChild(a), s.upgradeElement(i, &quot;MaterialCheckbox&quot;), i
    }, f.prototype.init = function() {
        if (this.element_) {
            var e = this.element_.querySelector(&quot;th&quot;),
                t = this.element_.querySelector(&quot;tbody&quot;).querySelectorAll(&quot;tr&quot;);
            if (this.element_.classList.contains(this.CssClasses_.SELECTABLE)) {
                var s = document.createElement(&quot;th&quot;),
                    i = this.createCheckbox_(null, t);
                s.appendChild(i), e.parentElement.insertBefore(s, e);
                for (var n = 0; n < t.length; n++) {
                    var a = t[n].querySelector(&quot;td&quot;);
                    if (a) {
                        var l = document.createElement(&quot;td&quot;),
                            o = this.createCheckbox_(t[n]);
                        l.appendChild(o), t[n].insertBefore(l, a)
                    }
                }
            }
            this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
        }
    }, s.register({
        constructor: f,
        classAsString: &quot;MaterialDataTable&quot;,
        cssClass: &quot;mdl-js-data-table&quot;
    });
    var b = function(e) {
        this.element_ = e, this.init()
    };
    window.MaterialRipple = b, b.prototype.Constant_ = {
        INITIAL_SCALE: &quot;scale(0.0001, 0.0001)&quot;,
        INITIAL_SIZE: &quot;1px&quot;,
        INITIAL_OPACITY: &quot;0.4&quot;,
        FINAL_OPACITY: &quot;0&quot;,
        FINAL_SCALE: &quot;&quot;
    }, b.prototype.CssClasses_ = {
        RIPPLE_CENTER: &quot;mdl-ripple--center&quot;,
        RIPPLE_EFFECT_IGNORE_EVENTS: &quot;mdl-js-ripple-effect--ignore-events&quot;,
        RIPPLE: &quot;mdl-ripple&quot;,
        IS_ANIMATING: &quot;is-animating&quot;,
        IS_VISIBLE: &quot;is-visible&quot;
    }, b.prototype.downHandler_ = function(e) {
        if (!this.rippleElement_.style.width &amp;&amp; !this.rippleElement_.style.height) {
            var t = this.element_.getBoundingClientRect();
            this.boundHeight = t.height, this.boundWidth = t.width, this.rippleSize_ = 2 * Math.sqrt(t.width * t.width + t.height * t.height) + 2, this.rippleElement_.style.width = this.rippleSize_ + &quot;px&quot;, this.rippleElement_.style.height = this.rippleSize_ + &quot;px&quot;
        }
        if (this.rippleElement_.classList.add(this.CssClasses_.IS_VISIBLE), &quot;mousedown&quot; === e.type &amp;&amp; this.ignoringMouseDown_) this.ignoringMouseDown_ = !1;
        else {
            &quot;touchstart&quot; === e.type &amp;&amp; (this.ignoringMouseDown_ = !0);
            var s = this.getFrameCount();
            if (s > 0) return;
            this.setFrameCount(1);
            var i, n, a = e.currentTarget.getBoundingClientRect();
            if (0 === e.clientX &amp;&amp; 0 === e.clientY) i = Math.round(a.width / 2), n = Math.round(a.height / 2);
            else {
                var l = e.clientX ? e.clientX : e.touches[0].clientX,
                    o = e.clientY ? e.clientY : e.touches[0].clientY;
                i = Math.round(l - a.left), n = Math.round(o - a.top)
            }
            this.setRippleXY(i, n), this.setRippleStyles(!0), window.requestAnimationFrame(this.animFrameHandler.bind(this))
        }
    }, b.prototype.upHandler_ = function(e) {
        e &amp;&amp; 2 !== e.detail &amp;&amp; this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE), window.setTimeout(function() {
            this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)
        }.bind(this), 0)
    }, b.prototype.init = function() {
        if (this.element_) {
            var e = this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);
            this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS) || (this.rippleElement_ = this.element_.querySelector(&quot;.&quot; + this.CssClasses_.RIPPLE), this.frameCount_ = 0, this.rippleSize_ = 0, this.x_ = 0, this.y_ = 0, this.ignoringMouseDown_ = !1, this.boundDownHandler = this.downHandler_.bind(this), this.element_.addEventListener(&quot;mousedown&quot;, this.boundDownHandler), this.element_.addEventListener(&quot;touchstart&quot;, this.boundDownHandler), this.boundUpHandler = this.upHandler_.bind(this), this.element_.addEventListener(&quot;mouseup&quot;, this.boundUpHandler), this.element_.addEventListener(&quot;mouseleave&quot;, this.boundUpHandler), this.element_.addEventListener(&quot;touchend&quot;, this.boundUpHandler), this.element_.addEventListener(&quot;blur&quot;, this.boundUpHandler), this.getFrameCount = function() {
                return this.frameCount_
            }, this.setFrameCount = function(e) {
                this.frameCount_ = e
            }, this.getRippleElement = function() {
                return this.rippleElement_
            }, this.setRippleXY = function(e, t) {
                this.x_ = e, this.y_ = t
            }, this.setRippleStyles = function(t) {
                if (null !== this.rippleElement_) {
                    var s, i, n, a = &quot;translate(&quot; + this.x_ + &quot;px, &quot; + this.y_ + &quot;px)&quot;;
                    t ? (i = this.Constant_.INITIAL_SCALE, n = this.Constant_.INITIAL_SIZE) : (i = this.Constant_.FINAL_SCALE, n = this.rippleSize_ + &quot;px&quot;, e &amp;&amp; (a = &quot;translate(&quot; + this.boundWidth / 2 + &quot;px, &quot; + this.boundHeight / 2 + &quot;px)&quot;)), s = &quot;translate(-50%, -50%) &quot; + a + i, this.rippleElement_.style.webkitTransform = s, this.rippleElement_.style.msTransform = s, this.rippleElement_.style.transform = s, t ? this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING) : this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)
                }
            }, this.animFrameHandler = function() {
                this.frameCount_-- > 0 ? window.requestAnimationFrame(this.animFrameHandler.bind(this)) : this.setRippleStyles(!1)
            })
        }
    }, b.prototype.mdlDowngrade_ = function() {
        this.element_.removeEventListener(&quot;mousedown&quot;, this.boundDownHandler), this.element_.removeEventListener(&quot;touchstart&quot;, this.boundDownHandler), this.element_.removeEventListener(&quot;mouseup&quot;, this.boundUpHandler), this.element_.removeEventListener(&quot;mouseleave&quot;, this.boundUpHandler), this.element_.removeEventListener(&quot;touchend&quot;, this.boundUpHandler), this.element_.removeEventListener(&quot;blur&quot;, this.boundUpHandler)
    }, b.prototype.mdlDowngrade = b.prototype.mdlDowngrade_, b.prototype.mdlDowngrade = b.prototype.mdlDowngrade, s.register({
        constructor: b,
        classAsString: &quot;MaterialRipple&quot;,
        cssClass: &quot;mdl-js-ripple-effect&quot;,
        widget: !1
    })
}();
//# sourceMappingURL=material.min.js.map

/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="tags[0]" value="angular2"><input type="hidden" name="tags[1]" value="example"><input type="hidden" name="tags[2]" value="tutorial"><input type="hidden" name="private" value="true"><input type="hidden" name="description" value="Angular 2 Example - Storyline Tracker"><input type="hidden" name="files[systemjs.config.js]" value="/**
 * PLUNKER VERSION
 * (based on systemjs.config.js in angular.io)
 * System configuration for Angular 2 samples
 * Adjust as necessary for your application needs.
 */
(function (global) {
  System.config({
    // DEMO ONLY! REAL CODE SHOULD NOT TRANSPILE IN THE BROWSER
    transpiler: 'ts',
    typescriptOptions: {
      tsconfig: true
    },
    meta: {
      'typescript': {
        &quot;exports&quot;: &quot;ts&quot;
      }
    },
    paths: {
      // paths serve as alias
      'npm:': 'https://unpkg.com/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',
      'main':                       'main.js', // PAPA

      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',

      // other libraries
      'rxjs':                       'npm:rxjs',
      'angular-in-memory-web-api':  'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
      'ts':                         'npm:plugin-typescript@4.0.10/lib/plugin.js',
      'typescript':                 'npm:typescript@2.0.3/lib/typescript.js',

    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
      'app/core': { main: 'index' }, // PAPA
      'app/models': { main: 'index' }, // PAPA
      'api': { defaultExtension: 'js' }, //PAPA
      app: {
        main: './main.ts',
        defaultExtension: 'ts'
      },
      rxjs: {
        defaultExtension: 'js'
      }
    }
  });
})(this);



/*
Copyright 2016 JohnPapa.net, LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://bit.ly/l1cense
*/"><input type="hidden" name="files[tsconfig.json]" value="{
  &quot;compilerOptions&quot;: {
    &quot;target&quot;: &quot;es5&quot;,
    &quot;module&quot;: &quot;commonjs&quot;,
    &quot;moduleResolution&quot;: &quot;node&quot;,
    &quot;sourceMap&quot;: true,
    &quot;emitDecoratorMetadata&quot;: true,
    &quot;experimentalDecorators&quot;: true,
    &quot;removeComments&quot;: false,
    &quot;noImplicitAny&quot;: false,
    &quot;suppressImplicitAnyIndexErrors&quot;: true
  }
}
"></form><script>document.getElementById("mainForm").submit();</script></body></html>